Linq для сущностей не поддерживает внешние ключи, которые не указывают на первичный ключ таблицы (см. Сообщение в журнале 3). Линк к объектам будет рассматривать его как обычное поле таблицы. Вы не сможете перейти к объекту, с которым он связан.
Если у вас есть существующая схема, я бы порекомендовал использовать генератор edm , поскольку это создаст файл EMDX, код и даже код представления (который может быть очень большим). Если ваша существующая схема достаточно велика Проверьте этот пост , в котором объясняется, как обращаться с большими схемами.
Когда вы запустите генератор EDM, вы обнаружите все, что не поддерживается.
Глядя на предыдущий журнал EDMGen2.exe, мы получили следующие типы сообщений:
- Тип данных 'sql_variant' не
поддерживается, столбец 'ColumnName'
в таблице TableName было
исключен.
- Таблица / представление 'tableName' не имеет
иметь первичный ключ, определенный. Ключ
был сделан вывод и определение
была создана как таблица только для чтения / представление
- Отношение 'RelationshipName'
имеет столбцы, которые не являются частью
ключ стола на
первичная сторона отношений
который не поддерживается,
отношения были исключены.
Мы также обнаружили, что проект Linq на самом деле очень сильно зависал в Visual Studio, поскольку файл кода, созданный EDM, занимал более 80 МБ.