Entity Framework-Comment ajouter des entités avec des propriétés de navigation

entity-framework

Question

J'aimerais ajouter un enregistrement à une table SQL Server à l'aide d'Entity Framework. L'entité de ma table a des clés étrangères ainsi que des propriétés de navigation pour ces champs. Lors de l'ajout d'un nouvel enregistrement / entité, comment renseigner les champs de clé étrangère car ils n'apparaissent pas en tant que propriétés de l'entité?

Réponse acceptée

Le moyen le plus simple consiste à interroger les entités associées et à utiliser les propriétés de navigation:

c'est à dire

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

Si vous voulez éviter la requête dans la base de données, l’approche la plus simple consiste probablement à utiliser une entité STUB, c’est-à-dire

// 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();

Si vous souhaitez davantage d’aide sur cette technique de talon, consultez cet article de blog sur le sujet.



Related

Sous licence: CC-BY-SA with attribution
Non affilié à Stack Overflow
Sous licence: CC-BY-SA with attribution
Non affilié à Stack Overflow