LINQ to Entities, несколько однозначных ссылок на одни и те же таблицы и наименования - PullRequest
0 голосов
/ 15 октября 2010

Я начал портировать приложение .NET SQL Server на LINQ to Entities. У меня есть (среди прочего ...) одна таблица с именем Users и одна с именем Time. Время сообщается конкретному пользователю (UserId), но также записывается, какой пользователь сделал отчет (InsertedByUserId) и, возможно, кто обновил время с момента вставки (updatedByUserId). Это дает мне три ссылки на таблицу Users.

Когда я генерирую .EDMX из этого, я получаю три ссылки на таблицу Users: User, User1 и User2. Без ручного редактирования у меня нет никакого способа узнать, какой из них ссылается на поле UserId, InsertedByUserId или updatedByUserId.

Как другие решают это? Может быть, нет необходимости регистрировать ВСЕ ссылки и придерживаться InsertedByUserId и updatedByUserId как целых?

(Ручное редактирование не было бы проблемой, если бы база данных никогда не обновлялась, но так как мы время от времени вносим изменения в базу данных, нам иногда приходится заново генерировать .EMDX, тем самым удаляя все изменения вручную.) *

Заранее спасибо!

1 Ответ

1 голос
/ 15 октября 2010

Jos

Обычно, когда я делаю свои внешние ключи, я называю их соответственно. В конструкторе сущностей вы можете различать различные свойства навигации (т. Е. Пользователь, пользователь1, пользователь2), просматривая ассоциацию FK (если вы четко назвали свои внешние ключи). Для экземпляра у меня есть поля ModifiedById и CreatedById в каждой таблице. Оба поля ссылаются на мою таблицу SystemUser. Мои внешние ключи названы так: FK_[TableName]_SystemUser_CreatedBy и FK_[TableName]_SystemUser_ModifiedBy.

alt text

Вы должны заметить, что в свойствах навигации вы можете видеть внешний ключ. Вы также можете изменить имя свойства навигации (которое находится в концептуальной части «CSDL-часть» EDMX), и это изменение останется при обновлении EDMX из базы данных.

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