Платформа объекта v4: Предотвращение Перезаписей Модели хранения Мастером Модели Обновления

В моей Платформе Объекта v4 проект, у меня есть таблица с двумя столбцами, которые вычисляются базой данных (через триггеры, и т.д.). Чтобы заставить EF правильно вставлять записи в таблицу, я должен вручную отметить столбцы как "Вычисленные" в Модели хранения EF (атрибут StoreGeneratedPattern), который не поддерживается разработчиком - таким образом, я должен сделать редактирования вручную к XML в.EDMX файле.

Проблема состоит в том, что каждый раз, когда моя схема базы данных изменяется, и я должен обновить модель хранения в своем проекте, "Мастер Модели Обновления" перезаписывает целый раздел Storage Model.EDMX, устраняя мои ручные изменения. Это означает, что я должен сохранить специальный список таких изменений и вручную повторно применить их КАЖДЫЙ РАЗ, когда я делаю обновление! Из любви к богу это должно быть одним из самых немых незначительных сбоев в EF.

Так или иначе мой вопрос для улья - это... Там какой-либо путь состоит в том, чтобы предотвратить перезаписи Модели хранения? Существует ли способ отметить столбцы в базе данных, так, чтобы EF автоматически отметил их, как вычислено? Как последнее прибежище, некоторый инструмент/техника REALLY EASY XML, который может автоматически применить изменения для меня после каждого обновления?

СПАСИБО, о, изучил факторы StackOverflow упрощения моей боли и помощи мне с этой проблемой даже при том, что у меня еще нет состояния на сайте. Когда-нибудь, когда у меня есть 4 + репутация цифры, я буду помнить Вас.

Brian


Обновление

Мне сказал инсайдер, что одно решение могло бы состоять в том, чтобы проверить "Блок питания Разработчика" (ссылка ниже), которая позволяет Вам настраивать поколение модели хранения. Я только просмотрел информацию до сих пор, но она смотрит на меня, любят может быть день или две кривая обучения для понимания этого. У кого-либо есть опыт с Блоком питания Разработчика или какие-либо другие идеи?

http://blogs.msdn.com/b/adonet/archive/2010/02/08/entity-designer-database-generation-power-pack.aspx

Еще раз спасибо, Brian

7
задан BrianFinkel 20 July 2010 в 13:14
поделиться

4 ответа

По словам команды EF в Microsoft, в настоящее время это самая большая жалоба от клиентов, а также самая приоритетная ошибка.

Они говорят, что у них есть разработанное решение, и они планируют выпустить его со следующим выпуском Visual Studio, скорее всего VS 2010 SP1, но дата не называется.

К сожалению, ни из каких источников не удалось найти хорошего обходного пути, но я все еще открыт для идей!

Брайан

1
ответ дан 7 December 2019 в 18:39
поделиться

Предпринимая попытку в темноте, не рассматривали ли вы возможность использования представления для таблицы - за вычетом двух вычисляемых столбцов - и не добавлять таблицу в модель?

0
ответ дан 7 December 2019 в 18:39
поделиться

Вы можете сгенерировать ваш edmx-файл, используя альтернативный конструктор, такой как в LlblGenPro v3.0. Я не знаю, насколько хорошо он поддерживает вычисляемые колонки. Но если вы спросите на форумах поддержки http://www.llblgen.com/tinyforum/, вы получите быстрый и точный ответ. Если по случайности эта функция не поддерживается, возможно, они смогут добавить ее в ближайшем релизе. Их цикл поставки намного короче, чем у MS.

Кстати, дизайнер LlblGenPro поддерживает не только Entity Framework v4 и V1, но и NHibernate, Linq to Sql, и их собственную среду исполнения LlblGenPro.

0
ответ дан 7 December 2019 в 18:39
поделиться

Я только что выпустил инструмент, который может вам помочь: 'model comparer' для моделей EFv4. Он является частью моего пакета дополнений Huagati DBML/EDMX Tools для Visual Studio и показывает различия между слоями базы данных, SSDL и CSDL. Вы можете выбрать отдельные различия и перенести их на противоположный слой (слои), или добавить различия, которые вы не хотите переносить, в список игнорирования.

При переносе изменений обновляются только затронутые части модели; несвязанные и неизмененные части остаются нетронутыми.

Вы можете скачать его и получить пробную лицензию с http://huagati.com/dbmltools/, если хотите опробовать его.

Huagati EDMX Tools Model Comparer for EFv4

0
ответ дан 7 December 2019 в 18:39
поделиться