Использование таблицы m: n в EDMX (EF 4.3) без привязки ее к связанным таблицам - PullRequest
0 голосов
/ 12 марта 2012

У меня ужасно спроектированная БД, в которой TableA отображается на таблицу B, C, D через таблицу отображения m: n.

Когда я включаю таблицу карты в EDMX, я получаю ошибку времени выполнения, что ключ entiteстолбцы не соответствуют ключевым столбцам таблицы.Ошибка 3002: ........

Я не нашел способа избежать этого, даже если вынуть дополнительный столбец в модели EDMX.Когда я это делаю, я получаю другие ошибки о множественности, которые должны быть 1.

На самом деле, DB не может и не должна изменяться.

Так, есть ли способ отобразить таблицу сопоставления m: n в EDMX без ассоциаций?Я спрашиваю, потому что таблица сопоставления не «видна» как таблица, а как ассоциация (в конструкторе есть граница между двумя другими таблицами.

1 Ответ

1 голос
/ 24 марта 2012

Хотя, вероятно, есть лучший способ, я бы порекомендовал Герт:

  • сделать копию базы данных (хотя бы схемы)
  • добавить столбец в таблицу сопоставления
  • обновить edmx на основе этой версии (дополнительный столбец будет означать, что таблица будет включена как «настоящая»
  • удалить лишний столбец из edmx

Еще одна альтернатива, которая может сработать (еще не пробовала)

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

Вы всегда можете создать / отобразить вручную, но, надеюсь, одно из перечисленных выше быстрее / проще, чем сделать это. :)

...