2009-07-08 14 views
8

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

Antwort

15

Der einfachste Weg ist es, eine Abfrage für die verbundenen Unternehmen zu tun, und verwenden Sie die Navigationseigenschaften:

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 der einfachste Ansatz vermeiden wollen, ist wahrscheinlich ein zu verwenden, STUB Einheit dh

// 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 diese blog post zum Thema mehr Hilfe auf dieser Stub-Technik sehen.

+0

Ich versuchte die vorgeschlagenen Antworten und sie beide funktionierten großartig. Vielen Dank für deine Hilfe! –

Verwandte Themen