出于某些原因,我想使用 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”选项失败:
在 C:\Windows\Microsoft.NET\Framework\vx.x.xx\config\machine.config 中找到的任何对 MySQL 版本的引用都需要与您的 mySQL.Data.Entity.EF6 版本相匹配项目引用。 (您的文本编辑器需要在管理员模式下运行才能保存文件)。
错误: MySQL - Entity : The value for column 'IsPrimaryKey' in table 'TableDetails' is DBNull - 按照该帖子的公认答案解决了这个问题。
错误: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/