Entity Framework, Обновление - PullRequest
       1

Entity Framework, Обновление

1 голос
/ 16 июля 2010

У меня большие проблемы с Entity Framework (4.0) из-за паттерна «добавления» в программу.(Использование ASP.NET MVC)

Проблема заключается в том, что создается впечатление, что вся структура Entity Framework предназначена для «создания всего сразу».Кажется, он не поддается прогрессивному развитию из-за всех изменений, которые происходят с инструментами.То есть, если я пойду изменю свою базу данных, это приведет к изменению моделей - и попытка сделать обновления вызовет все виды хаоса и хаоса.Это не было бы плохо, если бы все, что мне нужно было сделать, это перетащить все, и мои модели работали дословно, но я должен был внести ручные изменения, чтобы точно настроить вещи ... и это становится повторным и подверженным ошибкам.*

Кто-нибудь знает какие-либо лучшие инструменты или методы для решения этой проблемы?

Ответы [ 2 ]

2 голосов
/ 16 июля 2010

Хорошо, возьми два.Похоже, что вместо использования конструктора вам лучше пойти по пути кода и использовать аннотации данных.

Аннотации данных: http://blogs.msdn.com/b/efdesign/archive/2010/03/30/data-annotations-in-the-entity-framework-and-code-first.aspx - Проверьте атрибут storeNameAttribute для конкретногоЕсли вы упомянули в комментарии к моему удаленному ответу

Хорошая запись с первым кодом здесь: http://weblogs.asp.net/scottgu/archive/2010/07/16/code-first-development-with-entity-framework-4.aspx

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

0 голосов
/ 16 июля 2010

Что ты делал раньше? Вы реорганизовали базу данных и НЕ должны были менять код?

До сих пор я использовал все, от ADO.NET до 3 .NET ORM (Nhibernate, Linq2Sql и Entity Framework), занимался Django и Python и теперь увлекаюсь Ruby on Rails. Ни один из этих инструментов не решил полностью проблему несоответствия импеданса между базой данных и кодом.

Где-то где-то должен существовать этот код:

DBCOLUMN => CODE //or
myModel.Property = rdr["something"]  //or
<Property Name="EndDate" Type="datetime" /> //or
Id(x => x.Id);

Не имеет значения, находится ли он в Rails View, файле миграции, конструкторе Linq2Sql или в файле Fluent Nhibernate. Это всегда будет проблемой.

Мое предложение состоит в том, чтобы попытаться сделать несоответствие как можно меньшим. Не переименовывайте колонки с плохими именами в конструкторе и делайте все возможное, чтобы согласовать соглашения между вашей базой данных и кодом.

Другой отвечающий предоставил инструменты, которые просто меняют место, где происходит переименование, но на самом деле вам всегда придется выполнять такую ​​работу.

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