Наразі я будую програму використовує Збережені процедури та вручну виготовлені моделі класів для представлення об'єктів бази даних. Деякі люди запропонували використовувати Entity Framework, і я розглядаю можливість перейти до цього, оскільки я не так далеко в проекті. Моя проблема полягає в тому, що я відчуваю, що люди, які сперечаються за ЕФ, говорять мені лише про добру сторону речей, а не про погану сторону :)
Мої основні проблеми:
- Ми хочемо перевірити клієнтську сторону за допомогою DataAnnotations, і це виглядає так, що я все одно повинен створювати моделі на стороні клієнта, тому я не впевнений, що EF збереже стільки часу на кодування
- Ми хотіли б, щоб заняття були якомога меншими під час переходу по мережі, і я читав, що використання EF часто включає додаткові дані, які не потрібні
- У нас є складний рівень бази даних, який перетинає кілька баз даних, і я не впевнений, що EF може впоратися з цим. У нас є одна загальна база даних з такими речами, як "Користувачі", "Коди стану", "Типи" тощо. SELECT запити можуть і будуть запитувати в усіх екземплярах баз даних, однак користувачі можуть змінювати лише об'єкти, які знаходяться в базі даних, над якою вони працюють. Вони можуть перемикати бази даних без перезавантаження програми.
- Об'єктні режими дуже складні, і в них часто вступає досить багато об'єднань
Аргументами для EF є:
- Паралельність. Мені не потрібно було б кодувати чеки, щоб побачити, чи запису оновлювались перед кожним збереженням
- Генерація коду. EF може генерувати для мене моделі часткового класу та POCO, однак я не впевнений, що це дійсно заощадить мені стільки часу, оскільки я думаю, що нам ще потрібно створити моделі на стороні клієнта для перевірки та деякі спеціальні методи аналізу.
- Швидкість розвитку, оскільки нам не потрібно було б створювати збережені CRUD процедури для кожного об’єкта бази даних
Наша нинішня архітектура складається з сервісу WPF, який обробляє виклики до бази даних через параметризовані збережені процедури, об'єктів POCO, які переходять до / від служби WCF та клієнта WPF, і самого клієнта настільного WPF, який перетворює POCO в моделі класів для перевірки та Обв'язка даних.
Отже, моє запитання: чи правильно для цього EF? Чи є якісь підводні камені щодо EF, про які я не знаю?