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?
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%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%Tags und Links asp.net-mvc-3 ruby-on-rails many-to-many model orm