所以,我有我的SQL数据库中的表:
CompanyRelationships
--------------------
ID
CompanyID
RelatedCompanyID
PermissionGroupID
它定义,当一个公司允许访问它的记录给另一家公司。 该“CompanyID”是授予访问权限的公司,“RelatedCompanyID”是获得接入的公司。
是的,两个记录可能存在相同的两家公司(每个授权访问等)
问题是,当我生成数据库实体模型(在Visual Studio 2010),导航性能我得到的是不完全有益哪个是哪个。 我得到:
Company
Company1
UserGroup
用户组当然是显而易见的,但我想知道哪些公司引用是,因为这是一种非常重要的。 我敢肯定,我可以测试它,并找到答案,但我会在每次我从数据库中再生的时间来重新测试以确保万无一失。 有没有办法迫使导航属性的命名是该领域的FK,而不是它与实体?
您可以随时点击的实体模型浏览器的导航性能,并查找属性窗口。 该窗口会显示协会名称(在数据库中添加表之间的关系时创建)。 一旦你确定了关系,你总是可以重命名导航属性名称为您选择的名称。
例如,在实体图点击“公司1”的导航属性会显示你的关系名为“Company_Id_to_Related_Company_Id”(或任何名称)。 一旦你知道这意味着什么,你可以重命名的导航属性设置为一个有意义的名称,如“MasterCompany”。
抓住这个命令行应用https://github.com/timabell/ef-edmx-nav-namer ,在Visual Studio编译并运行它,对你的EDMX文件(需要先备份!)是这样的:
EfEdmxNavNamer.exe -i path\to\your\Model.edmx
对于下面的项名称: FK_Parent_Child
它将在每个端部设置的导航属性如下:
这只有真正涵盖了最基本的情况下,但它的东西。 如果你想改善它引入请求欢迎。 它的Apache 2.0许可。