Использование классов, созданных Entity Framework, на уровне бизнес-логики

StackOverflow https://stackoverflow.com/questions/1799661

Вопрос

У меня есть проект ASP.net (C#), использующий трехуровневую архитектуру.Я начал использовать Entity Framework в своем DAL, и вопрос в том, в какой степени классы, созданные Entity Framework, можно использовать на уровне бизнес-логики?

Это хорошая идея — использовать их напрямую, или мне следует создать свои собственные бизнес-объекты и сопоставить их с Entity Framework (db->O/RM->BOs)?

Это было полезно?

Решение

По моему мнению, объекты EF будут сопоставлены с вашими.Это требует более высоких затрат на разработку, но дает дополнительное преимущество в виде игнорирования постоянства и разделения.Такое разделение может привести к значительной гибкости и реальной экономии в долгосрочной перспективе, если бизнесу потребуется переключиться на другое решение для обеспечения персистентности.Без разделения объекты EF могут глубоко внедриться в уровни BLL и даже в уровни представления, что потребует масштабного рефакторинга.В таком случае компания может даже не рассматривать возможность переключения решений по сохранению данных, что может привести к снижению конкурентоспособности бизнеса.

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

Другие советы

Должно быть достаточно разумно использовать сгенерированные классы в качестве бизнес-объектов.Сгенерированные классы являются частичными, поэтому вы можете легко расширять их по своему усмотрению.Однако иногда я считаю более приятным вариантом использовать интерфейсы.

Я только начал работать с EF 2.0 (в .Net 4.0 beta 2), и у него есть возможность использовать классы POCO в качестве объектов EF.то естьТеперь вы можете использовать классы, игнорирующие постоянство, в EF 2.
Я думаю, что это еще не полностью готово, так как я не мог следить за презентацией PDC 2009, когда работал в Visual Studio 2010 beta 2, но следите за этим по адресу Блог команды ADO.Net.

Возможно, вы захотите посмотреть Адаптер постоянства игнорирования (POCO) для Entity Framework.Это проект с открытым исходным кодом, разработанный членом команды EF, который обеспечивает поддержку POCO в EF 1.0.EF 4.0 будет иметь готовую поддержку POCO, но этот проект будет служить временной мерой до выхода .NET 4.0 в 2010 году.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top