使用实体框架为导航属性提供有意义的名称

问题描述 投票:0回答:3

我正在使用 ADO .NET 实体框架从数据库导入我的模型。我的数据库中的表有一堆外键,所有外键都有抽象名称,例如

FKDevice132610

当我将表导入模型时,它会引入每个外键的导航属性,但是它们的导入名称基于它们链接到的表名称。如果某个表有多个外键,则在末尾附加一个数字。

Ef model

在本例中,Devices1 是 ParentDevices,Devices2 是 ChildDevices。有没有办法可以将此信息输入到我的外键中(例如使用描述或名称),以便实体框架将为我的导航属性导入有意义的名称?

.net entity-framework
3个回答
6
投票

据我所知,目前还没有办法做到这一点。这就是当前设计师的工作方式。更糟糕的是,当您将这些属性重命名为正确的名称时,从数据库更新模型有时会覆盖您的更改。

此工作项跟踪导航属性命名的改进 - http://entityframework.codeplex.com/workitem/125


0
投票

想知道搜索“modelBuilder.Conventions.Remove”是否会引导您找到解决方案。 我希望我能提供更多帮助,但我才刚刚开始探索 EF。当我有多个字段引用同一个 ID 时,遇到了类似的情况......而且我不记得解决方法是什么。


0
投票

四年后...
在 EF 团队解决此问题之前,一种可能的解决方法是使用外部工具解析

.edmx
文件并替换以
<NavigationProperty Name=
通过更有意义的导航名称。
作为 XML,非常容易解析和查找属性,如多重性、FK 名称等。

© www.soinside.com 2019 - 2024. All rights reserved.