我加入了三张桌子。商店,商店报告和报告。
Store table
StoreId
Storename.
Report table
ReportId
ReportName
StoreReport table
StoreId
ReportId
我想获得所有尚未填写特定报告的商店。 到目前为止,我有这个,但它也计算与其他报告相关的人。
var reports = from u in db.tblStores
join sr in db.tblStoreReports.Where(a => a.ReportId != reportId && !a.Deleted)
on u.StoreId equals sr.StoreId into g
where !g.Any()
select u;
答案 0 :(得分:1)
from u in db.tblStores
where !u.StoreReports.Any(a => a.ReportId == reportId && !a.Deleted)
select u
您可以使用!.Any
确保其Report
没有id
答案 1 :(得分:1)
不简单吗?您可以在没有加入的情况下使用Where
:
var reports = from u in db.tblStores
where !db.tblStoreReports.Any(sr => sr.StoreId == u.StoreId
&& sr.ReportId == reportId
&& !sr.Deleted)
select u;