如果这不是提交 EF Power Tools 错误报告的正确位置,请告诉我。
我假设标记为 BETA 的版本仍然是最新最好的版本。我将它与 EF 6.1.1 一起使用
具有复合主键的逆向工程表中存在错误。我的数据库有一个表,它的 PK 定义为:
([TableId] ASC,[AppDefID] ASC)
请注意,TableId 是第一列,AppDefId 是第二列。
但生成的代码将PK定义为:
this.HasKey(t => new { t.AppDefID, t.TableId });
请注意 PK 定义中的列顺序与数据库中的不匹配。当列的类型不同,而另一个实体试图与这个实体建立关系时,会产生一个模型验证异常:
DataElementRule_RuleAppEntity_Target_DataElementRule_RuleAppEntity_Source: : 引用约束的从属角色中所有属性的类型必须与主体角色中对应的属性类型相同。实体“DataElementRule”上的属性“TableId”类型与引用约束“DataElementRule_RuleAppEntity”中实体“RuleAppEntity”上的属性“AppDefID”类型不匹配。
解决方法是手动更正 HasKey() 参数的顺序以匹配数据库的顺序。