如何在linq到sql中的具有多对多关系的表中插入行

时间:2009-07-07 07:08:20

标签: linq-to-sql many-to-many

我是linqtosql的新手。 我有一个数据库架构,

员工可以属于多个团队,团队可以属于多个员工。

所以实际上我有一个,

员工表:EmpID(PK),EmpName等。

EmployeesTeam表:EmpID(FK),TeamID(FK)(这两个使复合PK)

团队表:TeamID(PK),TeamName等

我向Employee和Team表添加了行,但我不知道如何向E​​mployeesTeam表中添加行。

1 个答案:

答案 0 :(得分:2)

与EF不同,LINQ-to-SQL在表格之上是一个直接的层。您应该在数据上下文中有一个EmployeeTeams条目,因此您只需添加对象:

ctx.EmployeeTeams.InsertOnSubmit(
      new EmployeeTeam { Employee = emp, Team = team });

或者,您可以使用导航属性:

// this should alternatively be able to use the keys, instead of the objects
emp.Teams.Add(new EmployeeTeam {Employee = emp, Team = team});

在EF中,您可以隐藏这些桥接表(即emp.Teams.Add(team));但是使用LINQ-to-SQL,你必须正常处理它们