Pregunta

Soy finalmente moverse a la salida a la última versión de EF y estoy corriendo en mis pruebas con algunas dificultades.

Por lo tanto, mi capa DAL tiene mi archivo .edmx y estoy usando la plantilla de MS POCO así que también tengo los archivos y clases .TT generados.

Tengo una clase base genérica en el TestProject.DAL he creado que esas clases se derivan de. Es decir.

public class BaseEntity<T> {}
public class Customer : BaseEntity<Customer> {}
public class Product : BaseEntity<Product> {}

A continuación, en mi capa TestProject.BLL tengo algunas clases derivadas Es decir.

public class TestProject.BLL.Customer : TestProject.DAL.Customer {}
public class TestProject.BLL.Product : TestProject.DAL.Product {}

A continuación, en mi capa de interfaz de usuario Voy a llamar a mi objeto BLL.Customer. Me aparece un error diciendo que no se añade la referencia al objeto DAL.Customer, etc.

Tengo una referencia al proyecto BLL de mi proyecto de interfaz de usuario y una referencia a la DAL de mi proyecto BLL.

¿Por qué se queja la capa de interfaz de usuario que se sabe de la capa DAL cuando no se hace referencia en ese proyecto?

Además, como una cuestión lado, se ve este como un "buen" diseño?

Gracias a todos! Goosey

¿Fue útil?

Solución

Craig es correcto - la interfaz de usuario hace referencia a los tipos de entidad POCO. Pero voy a elaborar un poco más.

que estabas en una situación en que su proyecto de interfaz de usuario se refería a la BLL montaje y que el montaje se hace referencia a la DAL montaje y no exponer públicamente los miembros de DAL que el montaje , a continuación, lo que está diciendo sería correcto. Pero eso no es lo que está pasando aquí. Se hace referencia a la BLL montaje y los tipos en esa asamblea hereda directamente de los tipos DAL y por lo tanto los tipos DAL son públicamente visibles a la interfaz de usuario. Por lo tanto, el compilador es (correctamente) que le indica que debe hacer referencia a la DAL montaje de su proyecto de interfaz de usuario.

En cuanto a su pregunta "buen diseño", que siempre depende del contexto. Sin saber nada de su contexto, deseo dude en crear un árbol de herencia de esta manera. ¿Cuál es el trabajo de sus subclases en el BLL asamblea?

Otros consejos

Su interfaz de usuario hace referencia a los tipos de entidad poco -. A través del parámetro de tipo genérico en BaseEntity

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top