Свойства навигации в таблицах объединения в Entity Framework - PullRequest
1 голос
/ 01 июня 2011

Итак, у меня есть таблица в базе данных SQL:

CompanyRelationships
--------------------
ID
CompanyID
RelatedCompanyID
PermissionGroupID

, которая определяет, когда компания разрешает доступ к своим записям другой компании.«CompanyID» - это компания, которая предоставляет доступ, «RelatedCompanyID» - это компания, которая получает доступ.

Да, две записи могут существовать для одних и тех же двух компаний (каждая предоставляет доступ другой).

Проблема в том, что, когда я генерирую модель сущности из БД (в Visual Studio 2010), свойства навигации, которые я получаю, не совсем полезны в отношении того, какой именно.Я получаю:

Company
Company1
UserGroup

UserGroup, конечно, очевидна, но я хотел бы знать, какая справка компании является какой, поскольку это отчасти важно.Я уверен, что смогу проверить это и выяснить, но тогда мне придется проходить повторную проверку, чтобы быть уверенным каждый раз, когда я регенерирую из базы данных.Есть ли способ принудительно присвоить именованию свойства навигации имя поля FK, а не сущность, с которой оно связано?

Ответы [ 2 ]

2 голосов
/ 02 июня 2011

Вы всегда можете щелкнуть навигационное свойство объекта в браузере моделей и найти окно свойств.В окне отображается имя ассоциации (создается при добавлении связей таблицы в базу данных).После того как вы определили отношение, вы всегда можете переименовать имя навигационного свойства в любое имя по вашему выбору.

Пример, щелкнув «Company1» Навигационное свойство на диаграмме объектов покажет вам имя отношения как «Company_Id_to_Related_Company_Id» (или как там зовут).Как только вы поймете, что это значит, вы можете переименовать навигационное свойство в значимое имя, например «MasterCompany».

1 голос
/ 13 августа 2015

Захватите это приложение командной строки https://github.com/timabell/ef-edmx-nav-namer, скомпилируйте его в Visual Studio и запустите его для своего файла edmx (сначала сделайте резервную копию!) Следующим образом:

EfEdmxNavNamer.exe -i path\to\your\Model.edmx

Для следующегоимя ключа: FK_Parent_Child будет устанавливать свойства навигации на каждом конце следующим образом:

  • на родительской сущности: "Child"
  • на дочерней сущности: "Parent"

Это действительно охватывает только самый простой случай, но это нечто.Потяните запросы приветствовать, если вы хотите улучшить его.Это Apache 2.0 по лицензии.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...