2015-02-02 2 views
0

Я использую VS 2013 Express для Web с ADO.NET Entity Data Model.Обновление данных модели Entity Data ADO.NET после инкрементных изменений Db

При обновлении модели данных сущности из базы данных с использованием опции «Обновить» (кажется, вы можете выбрать только один элемент, хотя заголовок говорит о выборе объектов множественного числа) использование кажется неясным, и я заметил некоторые проблемы.

всего два примера:

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

  2. Я внес существенные изменения в две или три таблицы, атрибуты и одну взаимосвязь, но изменил имена таблиц. Здесь снова обновление было очень странным, поэтому я просто создал новую модель.

Я планирую изменить некоторые изменения, прежде всего, меняя изменения, я добавляю отношения FK, которые я забыл.

Есть ли способ быть уверенным в том, что поддерживается, а что нет в плане обновления.

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

Я хочу сделать такие изменения, но избегаю воссоздать всю модель.

Любые советы, оцененные.

ответ

0

Самый гарантированный способ гарантировать, что у вас всегда есть последняя версия, выбрать все (Ctrl A), а затем повторно добавить все с страницы модели.

Я знаю, что это звучит как боль, но гарантированно работает, пока вы не внесли никаких изменений в модель из Visual Studio.

Обновление не всегда работает.

+0

Спасибо, я ценю это. Поэтому, чтобы быть понятным, вы предлагаете мне щелкнуть любое место в «модели браузера», а затем нажать CTRL A, а затем нажать DELETE, не так ли? Единственное, что я могу сделать с моделью в vs, - это немного переместить вещи на диаграмме и сделать вызовы в код, никаких изменений в коде. Бит повторного добавления, я обычно выбираю модель диаграммы щелчка правой кнопкой мыши, выбираю модель обновления из db, я предполагаю, что там не будет никаких проблем после удаления кода, не так ли? Я попробую. Спасибо. – hardya

+0

@hardya - да, правильно. Все, что вы делаете с приведенным выше, - это удаление модели и повторное создание ее из db. Это может звучать экстремально, но это работает для меня, и я занимаюсь этим годами. Даже при очень сложном db это занимает всего несколько секунд. – DeclanMcD

+0

ОК, теперь я действительно пытаюсь сказать, что я сказал, и в браузере моделей нет функции CTRL. Где в иерархии или панели я сначала нажимаю до того, как доступен CTRL A? Я предполагаю, что вы не имеете в виду CTRL A на диаграмме, я бы подумал, что просто удаляется из диаграммы, нет? – hardya

Смежные вопросы