2009-07-08 28 views
8

Me gustaría agregar un registro a una tabla de SQL Server utilizando Entity Framework. La entidad de mi tabla tiene claves externas y también tiene propiedades de navegación para esos campos. Al agregar un nuevo registro/entidad, ¿cómo llento los campos de la clave externa ya que no aparecen como propiedades de la entidad?Entity Framework-Cómo agregar a Entites con propiedades de navegación

Respuesta

15

La forma más fácil es hacer una consulta para las entidades relacionadas y utilizar las propiedades de navegación:

es decir

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

Si se quiere evitar la consulta de base de datos de la manera más fácil es probablemente usar una sTUB entidad es decir

// 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 desea más ayuda en esta técnica trozo echa un vistazo a este blog post sobre el tema.

+0

Probé las respuestas sugeridas y ambas funcionaron estupendamente. ¡Muchas gracias por su ayuda! –

Cuestiones relacionadas