Entity Framework 4.1 Code First zu Definieren " viele-zu-viele mit Anmerkungen Daten nur
Ist es möglich zu definieren, eine viele-zu-viele-Beziehung in Entity Framework 4.1 (Code First Ansatz) mithilfe von datenanmerkungen nur ohne model builder?
Zum Beispiel, etwas wie:
Product = { Id, Name, ... }
Category = { Id, Name, ... }
ProductCategory = { ProductId, CategoryId }
Erhalten Sie das Bild.
Ich will nicht eine extra Einheit ProductCategory
im Zusammenhang mit zwei von vielen zu bleiben, da ich keine weiteren Daten, nur die beiden FKs. Ich sollte auch in der Lage sein zu definieren Tabelle name für die Zwischentabelle für die Verwendung mit einer vorhandenen Datenbank.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ist es möglich, zu definieren, viele-zu-viele-mit Standard-Konventionen oder mit Anmerkungen zu Daten, aber es ist nicht möglich, ändern Sie die Zuordnung zu der junction Tabelle (Tabellenname und Spalten) ohne model-builder. Einfach viele-zu-viele:
Für die Verwendung von Anmerkungen, die Sie verwenden können:
Wenn Sie brauchen, um die Kontrolle Zuordnung der junction Tabelle an vorhandenen Datenbank benötigen Sie
modelBuilder
. Daten, die Anmerkungen sind nicht so mächtig wie die fluent-API.Invalid column name 'Category_Id'.\r\nInvalid column name 'Product_Id'.
wenn ich versuche zu bewertenproduct.Categories
. Dies ist mithilfe von übereinkommen nur, d.h. es werden keine Anmerkungen oder fluent API. Meine Datenbank-TabelleProductsCategories
hatProductId
undCategoryId
ohne Unterstrich dazwischen. Warum der Unterstrich? Es ist nicht dokumentiert überall als eine Konvention, soweit ich weiß. EF4.1 braucht nicht Unterstrichen, für 1-M und M-1 Beziehungen (zumindest ist es nicht dokumentiert).ProductId
). Macht keinen Sinn. In der Tat bedeutet das, dass wenn ich später fügen Sie ein weiteres Feld, um die ProductCategories Zwischentabelle ("Ord" zum Beispiel) es wird eine wahre Einheit, und dann wird die Konvention wird sich beschweren, dass es nicht finden können, das Feld "ProductId".It is possible to define many-to-many ... with data annotations
. Könnten Sie bitte nur posten, die Anmerkungen gelten für viele-zu-viele (nur die Liste), so dass ich die Antwort akzeptieren?class Product{ int Id; int CategoryId; }
und haben die TabelleTABLE Products (Id int NOT NULL, Category_Id int NOT NULL)
(beachten Sie den Unterstrich im FK-Feld), dann abrufen, ein Produkt über DbContext schlägt mitInvalid column name 'CategoryId'
es geht eindeutig davon aus DB-Feld ohne den Unterstrich.ProductCategory
) mit Anmerkungen (ich interessiere mich nicht, was in der Datenbank, die ich verwenden, Datenbank-Initialisierung, ist es ein kleines Projekt ist)?Customer
,Order
undCustomerOrder
wo ich wanna Eigenschaften hinzufügen, um dieCustomerOrder
Klasse (ich nur wirklich über Klassen/Requisiten, nicht über Tabellen/Spalten), muss ich fließend? Oder kann ich erreichen, das mit den Attributen?