我正在使用 ADO .NET 实体框架从数据库导入我的模型。我的数据库中的表有一堆外键,所有外键都有抽象名称,例如
FKDevice132610
。
当我将表导入模型时,它会引入每个外键的导航属性,但是它们的导入名称基于它们链接到的表名称。如果某个表有多个外键,则在末尾附加一个数字。
在本例中,Devices1 是 ParentDevices,Devices2 是 ChildDevices。有没有办法可以将此信息输入到我的外键中(例如使用描述或名称),以便实体框架将为我的导航属性导入有意义的名称?
据我所知,目前还没有办法做到这一点。这就是当前设计师的工作方式。更糟糕的是,当您将这些属性重命名为正确的名称时,从数据库更新模型有时会覆盖您的更改。
此工作项跟踪导航属性命名的改进 - http://entityframework.codeplex.com/workitem/125
想知道搜索“modelBuilder.Conventions.Remove”是否会引导您找到解决方案。 我希望我能提供更多帮助,但我才刚刚开始探索 EF。当我有多个字段引用同一个 ID 时,遇到了类似的情况......而且我不记得解决方法是什么。
四年后...
在 EF 团队解决此问题之前,一种可能的解决方法是使用外部工具解析
.edmx
文件并替换以
<NavigationProperty Name=
通过更有意义的导航名称。