Модификации Entity Framework EDMX удалены - PullRequest
0 голосов
/ 06 июня 2011

Я следую указаниям здесь:

http://social.msdn.microsoft.com/forums/en-US/adodotnetentityframework/thread/0ce70e04-0ba0-4819-8898-87243203adb9/

для поддержки отображения на представление, использующее в нем CROSS APPLY UDF (в основном EF не может определить PK, поэтомуон комментирует это, когда я пытаюсь добавить его в свою модель).

После следования инструкциям в ссылке, я могу успешно сопоставить представление и запросить его .... но как толькокогда я пытаюсь U pdate Model from Database забрать новые изменения в схеме, он стирает изменения, которые я сделал согласно инструкциям в ссылке (и я вижу на экране мастера, что он говорит, что хочет удалить эти объекты).

Пожалуйста, скажите мне, что это не должно работать так ...

Ответы [ 2 ]

1 голос
/ 06 июня 2011

Простой обходной путь - это отдельный EDMX для всех заданных вручную объектов.Обновление из базы данных всегда удаляет SSDL-часть EDMX (там, где определено представление).

Редактировать:

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

1 голос
/ 06 июня 2011

Встроенный мастер «обновления модели из базы данных» в Visual Studio делает именно это;он заменяет всю часть модели SSDL, перезаписывая любые сделанные вами настройки.

Существуют сторонние инструменты, позволяющие выполнять выборочные обновления модели, сохраняя настройки, которые вы, возможно, сделали для других частеймодель и позволяет вам выбрать, какие изменения вы хотите распространить по слоям.Моя компания делает надстройку для Visual Studio, которая добавляет эту возможность (и кучу других полезных функций) в конструктор EF4.Вот вступительное видео, демонстрирующее некоторые основные возможности синхронизации: http://huagati.blogspot.com/2010/07/introducing-model-comparer-for-entity.html

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