LINQ to Entityの左外部結合を理解しようとしています。 CompanyProductは、その2つの親テーブル、当社及び製品にリンクされている複数の左外部結合を持つエンティティへのLinq
会社、CompanyProduct、製品
:たとえば、私は、次の3つのテーブルを持っています。
私は、すべての会社の記録と、それに関連するCompanyProductを返したいと思います。
SELECT * FROM Company AS C
LEFT OUTER JOIN CompanyProduct AS CP ON C.CompanyID=CP.CompanyID
LEFT OUTER JOIN Product AS P ON CP.ProductID=P.ProductID
WHERE P.ProductID = 14 OR P.ProductID IS NULL
私のデータベースはの商品コードとassocaited 3社、および2つのCompanyProductレコードを持っている14ので、SQLクエリの結果は次のとおりのTransact SQLで、私は次のように左外部結合を使用して、当社のテーブルから行くだろう期待される3行、そのうちの2つはCompanyProductとProductに接続され、1はCompanyProductとProductテーブルにCompany表とnullを単純に持ちます。
同様の結果を得るには、LINQ to Entityでどのように同じ種類の結合を記述しますか?
私はいくつかのことを試みましたが、正しい構文を取得できません。
ありがとうございました。
from s in db.Employees
join e in db.Employees on s.ReportsTo equals e.EmployeeId
join er in EmployeeRoles on s.EmployeeId equals er.EmployeeId
join r in Roles on er.RoleId equals r.RoleId
where e.EmployeeId == employeeId &&
er.Status == (int)DocumentStatus.Draft
select s;
乾杯:
'.Select(e => e)'はノーオペレーションであり、削除することができます。もちろん、あなたがIDだけを使っているなら、 '.Select(e => e.id)'と言ってみてはいかがですか? – StriplingWarrior