2010-10-26 4 views
4

Каковы наиболее важные ограничения ADO.NET Entity Framework 4.0, о которых должны знать разработчики бизнес-приложений?Наиболее важные ограничения структуры Entity

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

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

ответ

3

Вы должны знать о болтовне базы данных. Сохранение цельного графа объектов на самом деле не очень хорошая идея. При выполнении сложного запроса и обновления EF всегда будет пытаться обновить вставленные объекты. Решением этого является сложная логика запроса и обновления в сохраненном proc и путем передачи графов объектов через XML/string и т. Д. Для одного вызова БД.

Другая проблема с EF при первом проектировании дизайна или БД заключается в том, что сами классы Entity связаны с каркасом через наследование. Есть несколько стратегий вокруг этого, у меня есть сообщение в блоге, которое позволяет использовать POCO при извлечении интерфейса в то же время для насмешек, что очень удобно.

Getting the entity framework to Generate an interface for Mocking

+0

приятное сообщение в блоге - однако вы знаете, что есть шаблон T4, который автоматически генерирует mock ctx для вас (то же самое, что и ваш блог) – RPM1984

+0

Nice one. У вас есть ссылка? – Slappy

+0

http://visualstudiogallery.msdn.microsoft.com/en-us/a850e686-df08-4245-b0bb-5872654285c9 Это потрясающе. Я использовал его, чтобы издеваться над OC/DC, а затем вставлять fakies в мое репо-память в памяти, используя DI. Ницца. – RPM1984

2

Это должно вероятно быть CWiki, однако я буду катиться с ударами.

Ключ к хорошей реализации EF - это интеллектуальная смесь правильного моделирования домена (TPT для гибкости, TPH для производительности, наследования), абстракция логики сохранения (шаблон хранилища, POCOs, инъекция зависимостей) и знание, когда использовать хранимые процедуры для задач, требующих больших ресурсов.

Если вы хотите попасть в nitty-gritty, единственными ограничениями, которые я нашел с EF, является отсутствие поддержки отображения перечислений (это должно быть исправлено в ближайшее время).

ИМО, ограничение на самом деле не в продукте, это связано с тем, что разработчик не придерживается общих принципов и принципов архитектуры.

+0

Нет, ограничения, как правило, в руководстве по продукту - принципы и принципы почти всегда обходятся ограничениями в языке/структуре. Всегда будет * необходимость в руководящих принципах/принципах, так как есть * всегда * ограничения, но это не означает, что ограничений не существует. –

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