Entity Framework-How to Entites mit Navigationseigenschaften hinzufügen

entity-framework

Frage

Ich möchte einen Datensatz zu einer SQL Server-Tabelle mithilfe von Entity Framework hinzufügen. Die Entität meiner Tabelle enthält Fremdschlüssel und hat auch Navigationseigenschaften für diese Felder. Wie fülle ich beim Hinzufügen eines neuen Datensatzes / einer neuen Entität die Fremdschlüsselfelder aus, da sie nicht als Eigenschaften der Entität angezeigt werden?

Akzeptierte Antwort

Am einfachsten ist es, eine Abfrage für die zugehörigen Entitäten durchzuführen und die Navigationseigenschaften zu verwenden:

dh

Product p = new Product{
   ID = 5,
   Name = "Bovril",
   Category = ctx.Categories.First( c => c.ID == 5)
};
ctx.AddToProducts(p);
ctx.SaveChanges();

Wenn Sie die Datenbankabfrage vermeiden möchten, ist es am einfachsten, eine STUB-Entität zu verwenden, z

// this is a stub, a placeholder for the real entity
Category c = new Category {ID = 5}; 
// attach the stub to the context, similar to do a query
// but without talking to the DB
ctx.AttachTo("Categories", c);
Product p = new Product{
   ID = 5,
   Name = "Bovril",
   Category = c
};
ctx.AddToProducts(p);
ctx.SaveChanges();

Wenn Sie weitere Hilfe zu dieser Stub-Technik benötigen, lesen Sie diesen Blogbeitrag zum Thema.



Lizenziert unter: CC-BY-SA with attribution
Nicht verbunden mit Stack Overflow
Ist diese KB legal? Ja, lerne warum
Lizenziert unter: CC-BY-SA with attribution
Nicht verbunden mit Stack Overflow
Ist diese KB legal? Ja, lerne warum