6

Tengo un proyecto ASP.net (C#) que utiliza una arquitectura de tres capas. Empecé a usar Entity Framework en mi DAL y la pregunta es ¿en qué medida las clases generadas por Entity Framework se pueden usar en Business Logic Layer?Uso de clases generadas por Entity Framework en Business Logic Layer

Es una buena idea usar directamente o debo crear mis propios objetos de negocios y correspondencia a ellos de Entity Framework (db-> O/RM-> BOS)?

Respuesta

5

En mi opinión, los objetos EF se mapearían a los suyos. Esto tiene un costo de desarrollo más alto, pero brinda el beneficio adicional de la ignorancia y el desacoplamiento de la persistencia. Este desacoplamiento puede traducirse en una agilidad significativa y ahorros en el mundo real en el largo plazo, si la empresa necesita cambiar a una solución de persistencia diferente. Sin el desacoplamiento, los objetos EF pueden integrarse profundamente en las capas BLL e incluso en las capas de presentación, lo que requiere una gran refactorización. En tal caso, la empresa podría incluso no considerar cambiar las soluciones de persistencia, lo que podría hacer que la empresa sea menos competitiva.

La decisión de aprovechar este beneficio a costa desarrollo superior depende de la cantidad de riesgo que el negocio está dispuesto a tomar. Sugiero que consulte con los comisionados del proyecto y use su mejor juicio para interpretar sus objetivos estratégicos de una manera técnica.

+2

EF generan clases fueron diseñadas para ser extensible y que se utiliza como objetos de negocio . Si no te gusta, debes cambiar el orden o esperar que el código solo sea EF 4. Agregar objetos adicionales simplemente no te hace sentir bien. Primero DB, luego clases ORM, luego BOs, luego ver modelos. Parece mucho. – LukLed

2

Debe ser lo suficientemente razonable como para utilizar las clases generadas como sus objetos de negocio. Las clases generadas son parciales, por lo que puedes ampliarlas cómo desees. A veces me parece una opción más agradable, sin embargo, para usar interfaces.

1

acabo de empezar a trabajar en EF 2,0 (en .Net 4.0 beta 2) y tiene la posibilidad de utilizar clases POCO como entidades EF. es decir Ahora puede utilizar persistencia clases ignorantes en EF 2.
Creo que esto aún no está totalmente preparado, ya que no podía seguir la presentación del PDC 2009 cuando se trabaja en 2010 beta 2 de Visual Studio, pero mantener una vigilancia a cabo para esto en ADO.Net team blog.

0

Es posible que desee ver en la Persistence Ignorance (POCO) Adapter for Entity Framework. Este es un proyecto de código abierto de un miembro del equipo de EF que brinda soporte de POCO a EF 1.0. EF 4.0 tendrá soporte POCO fuera de la caja, pero este proyecto sirve como una medida provisional hasta que .NET 4.0 gotas en 2010.

Cuestiones relacionadas