Frage

Ich erhalte schließlich um, um die neueste EF Release Check-out und ich laufe in einige Probleme mit meinem Test.

Also, meine DAL Schicht hält meine .edmx Datei und ich bin mit der MS POCO-Vorlage so habe ich auch die generierten .TT Dateien und Klassen.

Ich habe eine generische Basisklasse in dem TestProject.DAL ich angelegt hat, dass diese Klassen von abzuleiten. D. h

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

Dann in meiner TestProject.BLL Schicht habe ich einige abgeleitete Klassen D.

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

Dann in meiner UI-Ebene Ich rufe mein BLL.Customer Objekt. Ich erhalte eine Fehlermeldung, dass der Verweis auf das DAL.Customer Objekt nicht hinzugefügt wird, etc.

Ich habe einen Verweis auf das BLL Projekt von meinem UI-Projekt und einen Verweis auf die DAL von meinem BLL Projekt.

Warum ist die UI-Ebene beschweren, dass es die DAL Schicht weiß, wenn es nicht in diesem Projekt verwiesen wird?

Auch als Neben Frage, tut dies aussieht wie ein „gut“ Design?

Vielen Dank an Alle! Goosey

War es hilfreich?

Lösung

Craig ist richtig - Ihre UI verweist die POCO Entitätstypen. Aber ich werde ein bisschen mehr erarbeiten.

Wenn Sie in einer Situation waren, wo Ihr UI Projekt der BLL Anordnung wurde Referenzierung und die Anordnung wurde Referenzierung der DAL Montage und nicht öffentlich aussetzt alle Mitglieder aus dass DAL Montage , dann, was Sie wäre richtig sagen. Aber das ist nicht das, was hier geschieht. Sie verweisen die BLL Montage und die Typen in der Montage von den DAL-Typen und damit die DAL-Typen direkt erben sind öffentlich sichtbar zu Ihrer Benutzeroberfläche. Daher ist der Compiler (richtig) Sie sagen, dass Sie die DAL Montage von UI-Projekt verweisen muss.

In Bezug auf Ihre „gutes Design“ Frage, das hängt immer vom Kontext. Ohne Ihren Kontext zu kennen, würde ich zögern, einen Vererbungsbaum wie diese zu erstellen. Was ist die Aufgabe Ihrer Unterklassen in den BLL Montage?

Andere Tipps

Ihre UI hat die POCO Entitätstypen Referenz -. Über den generischen Typparameter auf BaseEntity

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top