0

In Bezug auf das Thema, einige Entitäten haben MultirelationsbeziehungBeziehung zwischen Entitäten in C#, notwendig?

Ich lernte all diese in meinen Studien, ist es jedoch notwendig, in C# -Programmierung wie Entity-Framework in diesem Beispiel zu pflegen? :

http://www.asp.net/web-forms/tutorials/getting-started-with-ef/the-entity-framework-and-aspnet-getting-started-part-1

ist dies, weil ich bin verwirrt, wie die Aktualisierung von Objekten arbeitet, wie Kaskadierung und warum es wichtig ist.

Ich finde es einfacher, nur die Entität unabhängig voneinander zu kodieren, trotz der Tatsache, dass sie tatsächlich im realen Leben wie Kategorie-Produkt verwandt sind.

kann jemand kurz zeigen, wie CRUD mit dieser Beziehung in Fragen arbeitet?

+0

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

+0

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

+0

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

Antwort

1

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

+0

gerade jetzt, ich benutze und lernen, Entity Framework zu verwenden. Wie Sie gesagt haben, behandelt EF CRUD automatisch für mich. Ich bin mir jedoch nicht sicher, wie die Beziehung zwischen Entitäten während CRUD mit EF funktioniert und wie wichtig oder notwendig die Entity-Beziehung mit CRUD ist. – Melvin

+0

Ich habe meine Antwort bearbeitet, um Ihre Frage besser zu beantworten. – derSteve

+0

also, wenn die Elemente verknüpft sind, z. B. 1 .. *, Abfrage übergeordneten Eltern wird auch die untergeordnete Entität kaskadieren? Was ist mit anderen Operationen wie Löschen, Aktualisieren und Hinzufügen – Melvin