我正在研究一些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 :(得分:1)
简短的回答是,LINQ to SQL中不支持多对多关系,就像它们在Entity Framework和其他ORM中一样,您必须自己实现所需的行为。
查看this文章。它描述了一种适合您的方法。
答案 1 :(得分:0)
有人刚刚指出了正确的方向。我应该再等十分钟。我错过了.AttachTo() - 我需要在添加之前附加对上下文的引用,因为它抛出了InvalidArgumentException。