2009-07-07 5 views
2

Ich bin neu zu linqtosql. Ich habe ein Datenbankschema, wo,Wie Zeilen in Tabellen einfügen, die viele-zu-viele-Beziehung in linqtosql haben

Ein Mitarbeiter kann mehr als ein Team gehören und Team kann mehr als einem Mitarbeiter gehören.

Also eigentlich habe ich ein,

Employee-Tabelle: EmpID (PK), EmpName, etc ..

EmployeesTeam Tabelle: EmpID (FK), Mannschafts-ID (FK) (Diese beiden Verbund PK machen)

Team-Tabelle: Mannschafts-ID (PK), Teamnamen, etc

ich habe Zeilen Mitarbeiter und Team-Tabellen, aber ich weiß nicht, wie kann ich Zeilen in die EmployeesTeam Tabelle hinzuzufügen.

Antwort

2

Im Gegensatz zu EF ist LINQ-to-SQL eine direkte Ebene auf Ihren Tabellen. Sie sollten einen EmployeeTeams Eintrag auf dem Daten-Kontext haben, so können Sie nur Objekte hinzufügen, dass:

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

Alternativ können Sie in der Lage sein, die Navigationseigenschaften zu verwenden:

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

In EF, Sie können diese Überbrückungstabellen ausblenden (zB emp.Teams.Add(team)); aber mit LINQ-to-SQL müssen Sie mit ihnen umgehen normalerweise

+0

Die erste Methode funktioniert . In meiner Emp-Klasse gibt es keine direkte Verbindung zur Teamtabelle, , also kann ich emp.Teams.Add nicht verwenden (neues EmployeeTeam {Employee = emp, Team = team}); – San

+0

Im Navigationsbeispiel stellte Teams die Beziehung zu EmployeeTeam dar; Sie können die beiden Enden (getrennt) in der DBML aktivieren –

1

jemand anderes dieses Problem bereits gelöst:

Lesen Sie diese MSDN Blog-Einträge: Part 1, Part 2

HTH

Verwandte Themen