Я принял EF (из коробки .NET 4.5) в своем новом интернет-приложении.
это приложение действительно включает в себя довольно некоторую операцию над действиями db и включает около 30 или более таблиц.
Я хочу сказать, что это не простой школьный проект, где EF обычно подходит для большинства потребностей.
поскольку в дальнейшем я разрабатываю это приложение, я нашел EF очень ограниченным или запретительным для правильного/хорошего дизайна db (особенно в терминах над производительностью).
1) Включить
Я встречаю функцию Include в части запроса. Многие отсутствующие данные из-за отсутствия включают настройку.
Чем больше я вкладываю в эту вещь, тем больше беспокоюсь, что простой поиск данных получает больше вещей, чем мне нужно в определенной функции.
2) Проверка
Я принимаю Fluent Validation для этой потребности, поскольку я предпочитаю шаблон посетителя, где не требуется прямого изменения кода для самого кода данных.
но потом я получаю больше проблем, так как я подклассифицирую, мне нужно проверить валидацию, способную уважать простые вещи ООП. Мне это удалось, хотя и сложность и некоторые вещи, которые мне очень не нравятся в ее реализации. Я считаю, что этот вопрос проверки подкласса произошел и в DataAnnotation.
3) Транзакция
Теперь мне нужно включить надлежащий контроль транзакций db, и я обнаружил, что этого не хватает в EF, исправьте меня, если я ошибаюсь.
Я работал с компонентом Enterprise (COM + в .NET, давно давным-давно), и я не могу найти правильную (или отсутствие) реализацию транзакции в EF.
Я все еще работаю над этим...
завершающий)
Я понял, что EF помог мне в кодировании, это генерация кода данных/сущностей, что является общей особенностью многих других инструментов/фреймворков.
Я собираюсь отказаться от этого EF, переключиться на подход до эры EF, приняв заархивированный, все еще сгенерированный кодом класс таблицы (но не EF или DBML).
Я могу обойтись без SQL LINQ, так как у меня много проблем по сравнению с предыдущей проблемой производительности.
Мне нравится ваше мнение, что я должен оставаться и придерживаться EF, по какой-то причине, что мой простой ум может воспринимать, кроме этого ORM, который вряд ли реально работает вообще.