Entity Framework mit seinen Entitäten und deren Verbindungen untereinander bietet Ihnen den Vorteil, dass das Framework selbst - der OR - Mapper - sich um alle Aktualisierungen, Löschungen und Einfügungen kümmert. Es sorgt für die Aufrechterhaltung der Beziehungen zwischen den Entitäten und den Entitäten selbst. Sie müssen nur das Modell definieren.
Sie können immer die manuelle Straße gehen und alles selbst programmieren. Aber in den meisten Fällen, die Entitäten mit ihren Eigenschaften und Beziehungen zwischen ihnen zu definieren und Entity Framework oder irgendeinen anderen OR-Mapper (wie nHibernater) zu verwenden, ist ein großes Plus in Bezug auf Entwicklungsgeschwindigkeit, Wartbarkeit und Konsistenz.
Wenn Sie Ihre Entitäten getrennt voneinander definieren - mit anderen Worten, Sie arbeiten nicht mit Zuordnungen zwischen ihnen - können Sie nicht von einem Objekt zum anderen navigieren. Siehe Beispiel:
Beispiel a) mit den Verbänden definiert:
2 Einheiten: Ordnung und OrderItem Eine Bestellung bis zu n Auftragspositionen haben. Sie können von der spezifischen Bestellung zu allen zugehörigen Bestellpositionen, z.
var myOrder = Repository.FindOrderById(15);
var orderItems = myorder.OrderItems;
Beispiel b) ohne Vereinigungen definiert:
2 Einheiten: Ordnung und OrderItem Ohne Vereinigungen definiert, die Sie von einem Unternehmen zum anderen nicht navigieren können. Sie müssten für alle Bestellartikel getrennt abfragen, z.
var myOrder = Respository.FindOrderById(15);
var orderItems = Repository.FindOrderItemsByOrder(15);
Dies sagt nicht, wie die Entitäten geladen werden. In Beispiel b führt der OR-Mapper zwei Abfragen für die Datenbank aus, um die Reihenfolge und die zugehörigen Auftragselemente abzufragen. In Beispiel a könnten Sie definieren, ob Lazy Load die Entitäten in 2 Abfragen oder Eager laden in 1 Abfrage. Nach dem Definieren von Zuordnungen können Sie auswählen, ob verknüpfte Entitäten eifrig oder faul geladen werden sollen.
Dies ist ein guter Ausgangspunkt für Entity Framework im Allgemeinen: http://msdn.microsoft.com/en-us/library/bb386876.aspx
, die einen guten Überblick, wie Beziehungen zwischen den Entitäten arbeiten und welche Möglichkeiten Sie haben: http://msdn.microsoft.com/en-us/library/ee373856.aspx
deuten auf einen Artikel (gut aber es ist Zeitverschwendung für uns zu versuchen, davon zu raten), aber besser wäre es, uns ein kleines Beispiel zu geben, das am besten illustriert, was Sie brauchen, erklärt – NSGaga
Ich würde gerne wissen, wie CRUD Operationen mit Entity Framework oder objektorientierter Programmierung funktionieren Datenbank- oder Klassenentwurfsübungen haben normalerweise keine Beziehungen mit einer der anderen Entitäten. Zum Beispiel, Invoice und InvoiceItem-Klasse, obwohl sie als Eltern und Kind verwandt sind, hatte ich sie nie in der Datenbank über das Diagramm verknüpft noch in Codeebene verknüpft. Aus diesem Grund muss ich 2 Löschanweisungen schreiben, nur um diese 2 Elemente zu löschen. Von meinem Verständnis, wie es von dersteve unten mit der Beziehung erwähnt wird, löscht das Löschen von InvoiceItem auch über pk/fk. – Melvin
Sie können tatsächlich eine Zuordnung definieren, um das Löschen auf eine verwaiste Entität zu kaskadieren. Siehe diesen letzten Abschnitt zu diesem Thema auf dieser MSDN-Seite http://msdn.microsoft.com/en-us/library/ee373856.aspx – derSteve