使用Entity Framework在两个表之间创建关系

时间:2011-08-10 18:38:08

标签: c# .net entity-framework

我正在研究一些Web应用程序的CRUD方法。我正在使用SQL Server 2008的实体框架。特别是,我有两个使用交叉引用表链接的表。它采用以下格式:

  • 表格Tbl_Plan
    • PlanId
    • PlanNm
    • Active
  • 表格Tbl_Person
    • PersonId
    • PersonNm
    • PersonData
  • 外部参照表Xref_PersonPlan
    • PersonId
    • PersonNm

现在,当我创建一个新计划时,我一直试图将两者联系起来。我不知道怎么做。我知道它与引用关系或创建关系有关。

表格设置正确,因为我可以在创建数据后将数据拉得很好(即我在SQL Server中的示例条目),但创建引用是我难倒的地方。我尝试了以下方法:

using (Entities context = new Entities())
{
// TblPlan plan has already been instantiated
plan.TblPersons.Add(person);

context.AddToTblPlans(plan);

context.SaveChanges();

但显然,.Add()不是我正在寻找的......帮助?

2 个答案:

答案 0 :(得分:1)

简短的回答是,LINQ to SQL中不支持多对多关系,就像它们在Entity Framework和其他ORM中一样,您必须自己实现所需的行为。

查看this文章。它描述了一种适合您的方法。

答案 1 :(得分:0)

有人刚刚指出了正确的方向。我应该再等十分钟。我错过了.AttachTo() - 我需要在添加之前附加对上下文的引用,因为它抛出了InvalidArgumentException。