2011-08-10 119 views
0

我正在研究一个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()是不是我要找的....帮助?

回答

0

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

+0

现在它正在工作,或者你仍然有问题? –

+0

我有它的工作。感谢您的检查! – Cody

1

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

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

+0

对不起,我正在使用实体框架。我很愚蠢 - 而不是LINQ to SQL。 – Cody

相关问题