У меня есть три представления, которые я вручную создал в БД.
Первое представление - «Регион», второе - «FIPS», а последнее «многие ко многим» между ними называется «Region2FIPS». Это все представления, и мне нужен только доступ для чтения данных, поэтому я не беспокоюсь о наличии обновляемых представлений.
Я добавил каждое из этих представлений в Entity Framework и создал между ними соответствующие ассоциации.
От региона к региону2FIPS - это 1 ко многим.
FIPS для Region2FIPS - это 1 ко многим.
Представление «Region2FIPS» содержит только два столбца, один из которых называется «FIPSID», а другой - «RegionID». Эти столбцы связаны с их соответствующими представлениями в отношениях, которые я определил выше.
Когда этот тип ассоциации создается для таблиц в БД, Entity Framework знает, что это отношение «многие ко многим», и создает в «Регион» свойство навигации, называемое «FIPS», которое я могу использовать для навигации Детская коллекция FIPS. Это также относится к «FIPS» к «Региону».
Однако, когда выполняется вручную, с представлениями, это поведение не проявляется. Вместо этого мой объект «Регион» имеет коллекцию объектов «Region2FIPS», каждый из которых имеет свойство навигации с именем «FIPS», которое имеет тип «FIPS». А мой объект "FIPS" имеет коллекцию объектов "Region2FIPS", каждый из которых имеет свойство навигации, называемое "Регионы", типа "Region".
Я предполагаю, что это как-то связано с тем, что я не могу создавать ссылки на внешние ключи в представлениях, поэтому структура сущностей не реализует отношения многие ко многим. Но я подумал, что если бы я вручную создал отношение «многие ко многим» между представлениями, он бы его распознал и правильно обрабатывал переходы между типами. Есть ли способ заставить меня сделать это?