实体框架新手问题

时间:2010-06-09 18:12:21

标签: entity-framework

我无法理解EntityFramework

我有一个名为“Categories”的表,其中列为“IdCategory,CategoryName”。 我有一个名为“Country”的表,列“IdCountry,CountryName”

我有一个名为“Product”的表格,其中包含“IdProduct,IdCategory,IdCountry,ProductName”栏目

当我创建de EDM时,它会映射所有3个实体。产品实体只有2个标量属性“IdProduct,ProductName”和2个导航属性“Category,Country”

我面临的问题是我想要创建新产品

Product p = new SalesContext.Produc();
p.IdProduct = 1;
p.ProductName = "New Product";

这是我可以设置的唯一属性。问题是我必须设置de IdCategory和IdCountry,但这些属性在Product Entity中不存在。我只将它们作为导航属性。

那么在调用

之前如何设置IdCategory和IdCountry
SalesContext.AddProduct(p);
SalesContext.SaveChanges();

请帮助我!

Dev Enviroment:VS2008 sp1,.net 3.5 sp1,win 7。

1 个答案:

答案 0 :(得分:3)

假设您已正确定义了数据库中的FK,您应该与其他表有关联,因此您可以将代码更改为:

Product p = new SalesContext.Product();
p.IdProduct = 1;
p.ProductName = "New Product";
p.Category = SalesContext.Categories.First(c => c.IdCategory == 1);
p.Country = SalesContext.Countries.First(c => c.IdCountry == 2);
SalesContext.AddProduct(p);
SalesContext.SaveChanges();