我有以下实体


如您所见,BudgetPost有一个复合主键,它是实体Category和Budget的外键。我的问题是制作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();


还有其他办法吗?

提前致谢!

最佳答案

利用您的导航属性。

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

newBudget.BudgetPosts.Add(newBudget);


也就是说,利用Entity框架的功能。首先,创建您的加入条目,然后在其中关联“预算”和“类别”。然后将budgetPost添加到预算中。调用SaveChanges时,所有内容均应写入。

关于c# - ADO.NET Entity Framework -复合主键CRUD,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/3711938/

10-09 15:06