【问题标题】:update database : error asp.net core with mysql更新数据库:使用 mysql 的 asp.net core 错误
【发布时间】:2021-06-18 17:38:28
【问题描述】:
我正在使用带有 EF 核心的 mysql 数据库。
我使用 Identity Schema 到我现有的 MySql 数据库,在迁移之后,更新数据库生成这个:
“已为名为“Role”的“CreateTableOperation”类型的对象设置了架构“Identity”。MySQL 不支持架构的 EF Core 概念。任何“MigrationOperation”的任何架构属性都必须为空。可以通过在UseMySql 调用中设置SchemaBehavior 选项来更改此行为。"
error pic
那么如何设置 schemabehavior 选项。
怀着感激之情。
【问题讨论】:
标签:
mysql
entity-framework-core
【解决方案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}"))