c# - 如何转换 Entity Framework 6 为我的模型生成 FluentAPI 定义,而不是数据注释? (我在 VS2015 中使用 MySQL)

标签 c# mysql entity-framework-6 data-annotations ef-fluent-api

出于某些原因,我想使用 FluentAPI 来覆盖生成的字段定义的 EF 约定。默认情况下,EF6 为所有生成的类创建数据注释。

是否有自动将这些注释转换为 FluentAPI 的方法,或者让 EF 创建 FluentAPI 定义而不是使用数据注释?

最佳答案

我终于解决了这个问题并开始工作。 (我将 EF6 与 MySQL 5.1.76 和 VS2015 update 3 结合使用)。

我安装了修改后的 powertools VSIX,按照以下步骤与 VS2015 一起运行:http://thedatafarm.com/data-access/installing-ef-power-tools-into-vs2015/ (感谢@Steve)。但是,由于以下原因,选择“Reverse Engineer Code First”选项失败:

  1. 在 C:\Windows\Microsoft.NET\Framework\vx.x.xx\config\machine.config 中找到的任何对 MySQL 版本的引用都需要与您的 mySQL.Data.Entity.EF6 版本相匹配项目引用。 (您的文本编辑器需要在管理员模式下运行才能保存文件)。

  2. 错误: MySQL - Entity : The value for column 'IsPrimaryKey' in table 'TableDetails' is DBNull - 按照该帖子的公认答案解决了这个问题。

  3. 错误:Visual Studio 2015 Update 2 breaks EF reverse code engineer vsix - 通过将目标框架重置为 4.5.1 解决了这个问题

现在我可以选择“逆向工程代码优先”选项,它运行时没有错误,并且我的模型使用 FluentAPI 映射成功创建,正如我想要的那样。

关于c# - 如何转换 Entity Framework 6 为我的模型生成 FluentAPI 定义,而不是数据注释? (我在 VS2015 中使用 MySQL),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39332654/

相关文章:

c# - 如何将列表集合添加到列表中?

c# - WebRequest.GetResponse().GetResponseStream() 可以在没有 WebException 的情况下返回 null 吗?

java - 如何在 Fedora 中查找和查看 Java 包和类?

mysql - 在 mysql 中使用 group by 和 count =1 更新表

c# - 在类库中使用 Automapper 进行 Ninject

c# - dotnet core 3.0在vs中打开解决方案时无法找到dotnetcore sdk

c# - Azure 函数 : Client was not authenticated to send anonymous mail during MAIL FROM [DB6P189CA0021. EURP189.PROD.OUTLOOK.COM]

mysql - 我应该为这些用户使用哪些 mysql 权限?

c# - 经常使用的 Entity Framework 数据库上下文

entity-framework-6 - 添加从 ApplicationUser 到自定义实体的多对多关系