Ich verwende Entity Framework 4.1 in der MVC 3-Anwendung. Ich habe eine Entität, bei der der Primärschlüssel aus zwei Spalten besteht (zusammengesetzter Schlüssel). Und dies wird in einer anderen Entität als Fremdschlüssel verwendet. Wie erstelle ich die Beziehung? In normalen Scnerios verwenden wir:
public class Category
{
public string CategoryId { get; set; }
public string Name { get; set; }
public virtual ICollection<Product> Products { get; set; }
}
public class Product
{
public int ProductId { get; set; }
public string Name { get; set; }
public string CategoryId { get; set; }
public virtual Category Category { get; set; }
}
aber was ist, wenn die Kategorie einen Schlüssel mit zwei Spalten hat?
c#
entity-framework
ef-code-first
foreign-keys
composite-key
DotnetSparrow
quelle
quelle
virtual
Die Eigenschaften der Navigation sind für das verzögerte Laden erforderlich.virtual
Die Skalareigenschaften helfen bei der Änderungsverfolgung angehängter Objekte..HasRequired(p => p.Category)
aberProduct
keine Eigenschaft der Entität,Catagory
sondern zwei IDs, die den zusammengesetzten Schlüssel einer Kategorie bilden. Kannst du das bitte erklären, denn ich glaube, es wird nicht einmal kompiliert ... Danke!Product
hatCategory
in meiner Antwort.Ich glaube, der einfachste Weg ist, Datenanmerkungen für die Navigationseigenschaft wie folgt zu verwenden:
[ForeignKey("CategoryId1, CategoryId2")]
quelle
Navigation
Eigenschaften zu verwenden. Wie kann ich jedochcascadeDelete: false
nur für diese Eigenschaft festlegen , nicht für die gesamte Website? Danke