ADO.NET实体框架 - 复合主键CRUD

时间:2010-09-14 18:46:23

标签: c# asp.net entity-framework ado.net-entity-data-model

我有以下实体 alt text

如您所见BudgetPost有一个复合主键,它是实体Category和Budget的外键。我的问题是制作CRUD的最佳方法是什么?有没有办法mapp外键?简单的插入应如下所示:

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

还有其他方法吗?

提前致谢!

1 个答案:

答案 0 :(得分:2)

利用您的导航属性。

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

newBudget.BudgetPosts.Add(newBudget);

也就是说,利用Entity框架的强大功能。首先,创建您的加入条目并将预算和类别关联在那里。然后将budgetPost添加到预算中。所有人都应该在致电SaveChanges时写下来。