代码之家  ›  专栏  ›  技术社区  ›  Bandito

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

  •  1
  • Bandito  · 技术社区  · 8 年前

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

    1 回复  |  直到 8 年前
        1
  •  0
  •   Community Dan Abramov    7 年前

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

    我按照以下步骤安装了修改后的powertools VSIX,以便与VS2015一起运行: http://thedatafarm.com/data-access/installing-ef-power-tools-into-vs2015/ (谢谢@Steve)。但是,选择“首先反向工程代码”选项失败,原因如下:

    1. 在C:\Windows\Microsoft.NET\Framework\vx.xx\config\machine中找到对MySQL版本的任何引用。config需要匹配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映射成功创建的。