Question

Je suis enfin décidé de vérifier la dernière version EF et je suis en cours d'exécution dans des problèmes avec mes tests.

Alors, ma couche DAL contient mon dossier .edmx et je suis en utilisant le modèle MS POCO donc j'ai aussi les fichiers générés .TT et des classes.

J'ai une classe de base générique dans le TestProject.DAL j'ai créé que ces classes dérivent de. C'est à dire.

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

Ensuite, dans ma couche TestProject.BLL j'ai des classes dérivées I.e..

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

Ensuite, dans ma couche d'interface utilisateur J'appelle mon objet BLL.Customer. Je reçois une erreur disant que la référence à l'objet DAL.Customer n'est pas ajouté, etc.

J'ai une référence au projet BLL de mon projet d'interface utilisateur et une référence à la DAL de mon projet BLL.

Pourquoi la couche d'interface utilisateur plaint qu'il connaît de la couche DAL quand il est pas référencé dans ce projet?

En outre, comme une question de côté, ce que ça ressemble un design "bien"?

Merci à tous! Goosey

Était-ce utile?

La solution

Craig est correct - votre interface utilisateur fait référence aux types d'entités poco. Mais je vais élaborer un plus bits.

Si vous étiez dans une situation où votre projet d'assurance-chômage faisait référence à l'ensemble BLL et que l'ensemble faisait référence à l'assemblage DAL et pas exposer publiquement les membres de que l'assemblage DAL , alors ce que vous dites serait correct. Mais ce n'est pas ce qui se passe ici. Vous faites référence à l'assemblage BLL et les types dans cette assemblée directement héritez des types de DAL et donc les types de DAL sont publiquement visibles à votre interface utilisateur. Par conséquent, le compilateur est (correctement) vous dire que vous devez faire référence à l'ensemble de la DAL de votre projet d'interface utilisateur.

Quant à votre question « bonne conception », qui dépend toujours du contexte. Sans connaître l'un de vos propos, je voudrais hésiter à créer un arbre d'héritage comme celui-ci. Quel est le travail de vos sous-classes dans l'assemblée BLL?

Autres conseils

Votre interface utilisateur Finalité référencer les types d'entités POCO -. Via le paramètre de type générique sur BaseEntity

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top