2010-09-14 254 views
2

我有以下实体 alt textADO.NET实体框架 - 复合主键CRUD

当你看到BudgetPost有复合主键是一个外键的实体类别和预算。我的问题是制作CRUD的最佳方式是什么?有没有办法来映射外键?简单的插入应该看起来像这样:

Budget newBudget = new Budget(); 
       newBudget.BudgetName = textBox1.Text; 
       newBudget.FromDate = dateTimePicker1.Value; 
       newBudget.ToDate = dateTimePicker2.Value; 

       newBudget.BudgetPosts.Add(new BudgetPost { FKBudgetID = newBudget.BudgetID, FKCategoryID = 21, BudgetAmount = 700 }); 
       db.AddToBudgets(newBudget); 
       db.SaveChanges(); 

还有其他方法吗?

提前致谢!

回答

2

利用您的导航特性。

BudgetPost newBudgetPost = new BudgetPost(); 
newBudgetPost.Budget = newBudget; 
newBudgetPost.Category = newCategory; //loaded somewhere, or created on the fly 

newBudget.BudgetPosts.Add(newBudget); 

也就是说,利用实体框架的力量。首先,创建您的加入条目并将预算和类别关联在那里。然后将budgetPost添加到预算中。调用SaveChanges时,所有内容都应该写入。

+0

感谢您的回答 – ilkin 2010-09-15 19:18:33