更新数据库:使用 mysql 的 asp.net core 错误
Posted
技术标签:
【中文标题】更新数据库:使用 mysql 的 asp.net core 错误【英文标题】:update database : error asp.net core with mysql 【发布时间】:2021-06-18 17:38:28 【问题描述】:我正在使用带有 EF 核心的 mysql 数据库。
我使用 Identity Schema 到我现有的 MySql 数据库,在迁移之后,更新数据库生成这个:
“已为名为“Role”的“CreateTableOperation”类型的对象设置了架构“Identity”。MySQL 不支持架构的 EF Core 概念。任何“MigrationOperation”的任何架构属性都必须为空。可以通过在UseMySql
调用中设置SchemaBehavior
选项来更改此行为。"
error pic 那么如何设置 schemabehavior 选项。 怀着感激之情。
【问题讨论】:
【参考方案1】:更新您的服务注册器 (Startup.cs) 并修改数据库上下文以将 SchemaBehavior
选项设置为以下选项之一:
// Throw an exception, if a schema is being used. This is the default.
options.UseMySql(myConnectionString, b => b.SchemaBehavior(MySqlSchemaBehavior.Throw))
// Silently ignore any schema definitions.
options.UseMySql(myConnectionString, b => b.SchemaBehavior(MySqlSchemaBehavior.Ignore))
// Use the specified translator delegate to translate from an input schema and object name to
// an output object name whenever a schema is being used.
options.UseMySql(myConnectionString, b => b.SchemaBehavior(MySqlSchemaBehavior.Translate,
(schema, entity) => $"schema ?? "dbo"_entity"))
【讨论】:
以上是关于更新数据库:使用 mysql 的 asp.net core 错误的主要内容,如果未能解决你的问题,请参考以下文章
ASP.NET开发实战——ASP.NET MVC 与数据库之MySQL