Supposons la table Employee classique auto-référencée où chaque employé peut avoir au plus un ReportsTo, tel que créé avec cet extrait T-SQL et des exemples de données :Existe-t-il une sous-requête pour Linq to Enties comme dans ce T-SQL?
create table Employees
(
Id int identity primary key,
Name nvarchar(30),
Region nvarchar(10),
ReportsTo int null
foreign key(ReportsTo) references Employees(Id)
)
insert into Employees values('Boss','HO',null)
insert into Employees values('Underling', 'HO',
(select Id from Employees where Name='Boss'))
insert into Employees values('Self Important', 'Region 1',
(select Id from Employees where Name='Underling'))
insert into Employees values('Very Underling', 'Region 1',
(select Id from Employees where Name='Self Important'))
Je peux sélectionner le gestionnaire pour la région 1 avec ce T-SQL
select * from Employees
where Region = 'Region 1' and
ReportsTo not in (select Id from Employees where Region = 'Region 1')
en d'autres termes, le gestionnaire est un employé non à des rapports dans sa région.
Maintenant, comment puis-je déterminer le gestionnaire pour la région 1 en utilisant Linq?
Merci --- Je pense que vous aurez besoin de lancer la sélection e2.Id comme Int? puisque c'est le type pour e.ReportsTo. Autre que cette modification mineure, il semble faire l'affaire. –
Je ne sais pas pourquoi vous auriez besoin de la distribution, car ils sont tous les deux 'int', sauf si j'ai mal lu votre question. –
Je n'avais pas besoin d'utiliser '.ToList()' en fait, cela me donnait une erreur. Enlever cela fonctionne pour moi comme un charme =) J'espère que cela aide quelqu'un d'autre = D –