我无法理解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和IdCountrySalesContext.AddProduct(p);
SalesContext.SaveChanges();
请帮助我!
Dev Enviroment:VS2008 sp1,.net 3.5 sp1,win 7。
答案 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();