Entity Framework (.NET) - Моделирование в оба конца с использованием модели в первую очередь?

В настоящее время я работаю над проектом, в котором хочу впервые использовать Entity Framework. Я прочитал много информации в книгах Лермана / Миллера, в MSDN, блоге ADO.NET и здесь, в stackoverflow, о последних разработках, касающихся DbContext API и возможностей Code First Migrations, доступных с EF 4.3. Поскольку особенно последние действительно хороши, я задавался вопросом, можно ли тем временем сделать ту же самую рабочую "Модель Сначала" по центру? Можно ли выполнять миграции на основе визуального конструктора EDMX (вместо кода) после создания кода и базы данных из него?

Я нашел довольно недавнюю ссылку (2012-04), в которой говорится, что это не так (в EF 4.3): Использование инструмента миграции EF4 с подходом" сначала модель "

Во-вторых, я нашел информацию о том, что старый код и таблицы базы данных перезаписываются при попытке регенерировать их из конструктора EDMX?

Но информация, о которой я говорю, касается Power Tools: http://blogs.msdn.com/b/adonet/archive/2012/04/09/ef-power-tools-beta-2-available.aspx

Reverse Engineer Code First Эта команда позволяет однократно генерировать сопоставления Code First для существующей базы данных. [..] • Выполнение этой команды несколько раз приведет к перезаписи любых ранее сгенерированных файлов, включая любые изменения, которые были внесены в сгенерированные файлы.

Является ли это ограничение специфическим только для Power Tools Reverse Engineer Code First, или оно распространяется и на проектировщика EDMX в целом, особенно на подход «Model First» тоже?

Кроме того, в статье выше я обнаружил:

Просмотр модели данных сущности (только для чтения) Отображает модель Code First в конструкторе Entity Framework. • Это представление модели только для чтения; вы не можете обновить модель Code First с помощью конструктора.

И здесь применим тот же вопрос.

Итак, есть ли в настоящее время способ полного двустороннего моделирования без потери данных (кода и базы данных) и сохранения возможности записи в файл EDMX, что предпочтительнее после «Сначала модели»?

С какой версией EF он (уже или планируется) поддерживается, на какую версию .NET мне следует ориентироваться (достаточно 4.0?) И будет ли это работать с Visual Studio 2010 Professional? Не могли бы вы дать приблизительную оценку даты, когда вы, возможно, это осуществите?

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


comment
comment
Спасибо за указатель, который представляет собой хорошее резюме того, что я уже упомянул в своем вопросе. Однако это касается только части моего вопроса, связанной с базой данных. Я хотел знать, можно ли выполнить полный цикл проектирования сущностей, ориентированный на дизайнера моделей, с обновлением базы данных И кода (в идеале, включая POCO). Так что фокус здесь шире. Кроме того, я прямо попросил об улучшении, начиная с версии 4.3, и о том, планирует ли команда EF реализовать этот подход - и если да, то когда.   -  person juniper    schedule 11.07.2012


Ответы (1)


Если я правильно понимаю ваш вопрос, вы после миграции для EF Designer (т.е. обновите модель в дизайнере и постепенно измените базу данных). В настоящее время это не поддерживается, это в нашей очереди для решения, но у нас нет конкретных планов по конкретному выпуску. Одна из вещей, которую нам нужно решить, заключается в том, следует ли нам просто интегрировать / расширить существующую функцию Code First Migrations для работы с EF Designer или нам нужно что-то более ориентированное на дизайнера. Очевидно, что все может измениться, но на данном этапе я не ожидал, что мы начнем работать над этой функцией в ближайшие 6 месяцев. Кроме того, это будет зависеть от того, какие функции мы видим, люди, о которых просят ... поэтому я бы создал новую функцию на http://data.uservoice.com и пусть люди голосуют за него. ~ Рябина

person Rowan Miller    schedule 16.07.2012
comment
Если я правильно понимаю ваш вопрос, вы после миграции для EF Designer (т.е. обновите модель в дизайнере и постепенно измените базу данных). Ответ: Да, миграции на основе EF Designer, с постепенным изменением ОБЕИХ, базы данных и классов в коде тоже. (извините, не удалось заставить цитирование stackoverflows работать в этом комментарии) - person juniper; 22.07.2012
comment
Одна из вещей, которую нам нужно решить, заключается в том, следует ли нам просто интегрировать / расширить существующую функцию Code First Migrations для работы с EF Designer или нам нужно что-то более ориентированное на дизайнера. - можжевельник: Да, я тоже примерно об этом думал. Мне кажется, что второй путь мог бы быть лучше (потому что - или вопреки? - модели ER всегда богаче, чем могут быть напрямую отражены моделью классов на большинстве объектно-ориентированных языков). Но, конечно, сложно, чтобы две сгенерированные модели (база данных и код) соответствовали друг другу и не расходились. - person juniper; 22.07.2012
comment
Спасибо, что полностью разъяснили мои вопросы, и я позабочусь о создании запроса функции. Спасибо за полное разъяснение моих вопросов, и я позабочусь о создании запроса функции. - person juniper; 22.07.2012