Ich versuche, eine Unterabfrage auf meinem Code zu erstellen und konnte eine Unterabfrage erstellen, aber ich kann einige Teile nicht verstehen.linq Unterabfrage Syntax Erklärung
Unten ist die Unterabfrage, die ich gefolgt bin und meine Kommentare zu dem, was ich verstehe.
List<int> IdsToFind = new List<int>() {2, 3, 4};
db.Users
.Where(u => SqlMethods.Like(u.LastName, "%fra%"))
.Where(u =>
db.CompanyRolesToUsers // the table inside the subquery
.Where(crtu => IdsToFind.Contains(crtu.CompanyRoleId)) //the filter inside the subquery
.Select(crtu => crtu.UserId) //I cannot understand why there is a select of column here
.Contains(u.Id) //I cannot understand the additional filter here
)
Im Folgenden finden Sie die Beispielabfrage der oben LINQ
SELECT * FROM Users WHERE Users.lastname LIKE '%fra%'AND Users.Id IN (
SELECT UserId
FROM CompanyRolesToUsers
WHERE CompanyRoleId in (2,3,4))
Der Code ist von How to do subquery in linq
PS: ich die Codes von anderen verwendet, so dass ich eine einfache Probe geben könnte meine Frage. Mein Code ist kompliziert. Vielen Dank.
Vielen Dank, dass war eine dumme Frage, die ich schließlich realisiert, dass das 'wo' war für die Fremdschlüssel und die' select' und 'contain' sind für Filter. – makoto