Tenemos los repositorios de la DAL. El BLL hace referencia a los repositorios a través de una interfaz, por lo que los repositorios están vinculados al DAL pero están desacoplados del BLL. No sé de ninguna razón por la cual los repositorios no podrían estar directamente en el BLL. Los tenemos en el DAL ya que no ponemos NINGUNA lógica en ellos. Luego tenemos "Administradores" en el BLL que envuelven los repositorios y manejan la lógica específica de la entidad.
FWIW en realidad tenemos un genérico Repository(Of IEntity)
y usamos la unidad para instanciar el repositorio apropiado según sea necesario, es muy compacto y bastante elegante. Todas nuestras entidades POCO implementan IEntity que contiene Id
, CreatedDate
, etc. que son comunes a TODAS nuestras entidades. Esto le da a algunos otros beneficios cuando se necesita para manejar cualquier tipo de entidad genérica - CreatedDate
se establece por el repositorio cuando CreateInstance()
se llama, ModifiedDate
es fijado por el propio contexto en que se cometió una entidad con un estado de Modified
Guardamos entidades en un proyecto separado: el DAL necesita poder hacer referencia a ellas, al igual que el BLL. No los quiere en el DAL ya que intercambiar el DAL causaría problemas. No puede ponerlos en el BLL o recibe una referencia circular. La configuración de las entidades puede vivir en el DAL ya que es fuente de datos específicos.
Intentamos adherirnos a la BLL teniendo en cuenta las primitivas y las entidades que regresan. Tenga cuidado al mantener las entidades en la IU por mucho tiempo, especialmente en una aplicación web, ya que puede tener un contexto diferente bajo el DAL para cuando devuelve la entidad a la BLL para su procesamiento (es decir, a través de solicitudes almacenadas en sesión o similares) puede dar lugar a todo tipo de entidades de vinculación/separación divertidas de contextos y le pierde algunos beneficios, como el seguimiento de cambios.
Espero que ayude, pero si quieres alguna aclaración, que me haga saber
Si una de nuestras respuestas ayudó, por favor márquela como aceptada – Basic