如果这不是提交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()参数的顺序以匹配数据库的顺序。