Rails hat in ASP.NET MVC3 eine Vielzahl von Äquivalenten

8

Was ist in .NET Entity Framework der beste Weg, eine (benutzerdefinierte) Join-Tabelle mit zusätzlichen Attributen (anders als IDs) zu erstellen und / oder diese Join-Tabelle über ein separates Modell mit anderen zu verknüpfen? In Ruby on Rails können wir ein Modell für die Join-Tabelle haben, wie:

%Vor%

Dann können wir verwenden: Item.first.buyers , Buyers.first.items und Buyer.create(:items=>Item.create(:name=>'random')) usw. genau wie wenn wir eine automatisierte Join-Tabelle ohne Modell verwenden (mit has_and_belongs_to_many).

Wenn wir im Visual Studio 2010-Dialogfeld "Add Association" die Multiplizität als * (Many) auswählen, gibt es keine Option zum Auswählen einer Join-Tabelle (mit Modell). Gibt es eine Möglichkeit, es manuell zu tun?

    
vulcan raven 16.12.2011, 16:47
quelle

2 Antworten

6

Ja, Sie können etwas ziemlich nah bekommen. Ich bin mir nicht ganz sicher, wie ich das im Designer einrichten soll, da ich nur mit codefirst arbeite.

Hier ist ein Beispiel:

Schüler - & gt; StudentFloor & lt; - Floor

%Vor%

Die Verknüpfungstabelle:

%Vor%

Endlich die andere Seite der Vielen-zu-Vielen:

%Vor%     
Leniency 22.12.2011, 21:31
quelle
0

UPDATE zur Antwort von Leniancy:

Wir können auch zwei Eins-zu-viele-Beziehungen mit dem ersten Ansatz von Model erstellen. So oder so können wir keine Modellbindung wie in einer reinen M2M-Beziehung (ohne Payload- oder reine Join-Tabellen - PJT) haben.

Auch im (Scaffold) Controller können wir ein View-Modell für die CRUD-Operationen gemäß der Anforderung verwenden. Angeblich haben wir ein FloorViewModel mit der folgenden Definition:

%Vor%

Die create Aktion im Controller wäre:

%Vor%

und die Edit-Aktion wäre etwa wie folgt:

%Vor%

In View können wir das Objekt von FloorModelView wie folgt senden:

%Vor%

und schließlich sieht _CreateOrEdit teilweise wie folgt aus:

%Vor%     
vulcan raven 27.01.2012 00:34
quelle