出于某些原因,我想使用FluentAPI来覆盖生成的字段定义的EF约定。默认情况下,EF6为所有生成的类创建数据注释。
是否有自动方式将这些注释转换为FluentAPI,或者让EF创建FluentAPI定义而不是使用数据注释?
答案 0 :(得分:0)
我终于解决了这个问题。 (我使用EF6与MySQL 5.1.76和VS2015更新3)。
我安装了修改过的powertools VSIX,与VS2015一起运行:http://thedatafarm.com/data-access/installing-ef-power-tools-into-vs2015/(感谢@Steve)。但是,选择“逆向工程师代码优先”选项失败的原因如下:
在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映射成功创建,就像我想要的那样。