LINQ/Lambda等同于SQL NOT IN

Ref*_*din 2 .net c# sql linq linq-to-sql

我有以下内容:

context.tblProviderServices
.Where(ps => (DateTime.Now > ps.EffectiveDate && DateTime.Now < ps.TerminateDate) &&
         (ps.tblProvider.InactiveDate == null || DateTime.Now < ps.tblProvider.InactiveDate) &&
         (ps.tblProvider.IncludeInDirectory == "Y") &&
         (ps.ServiceStatusID == "Final") &&
         (ps.IsMemberSpecific == null || ps.IsMemberSpecific == false) &&
         (ps.tblProvider.tblProviderReferralHolds.Where(h => h.TerminateDate == null).Count() < 1))
Run Code Online (Sandbox Code Playgroud)

我的问题与最后一行有关.这是错误的,我可以说,因为我正在写它,但我似乎无法弄清楚如何将它改变为我想要的.

所有这些表都设置了适当的关系. tblProvider是一个1到多个tblProviderReferralHolds和我想要完成的是将我的结果限制为只有其提供商目前没有保留的服务.

在SQL中,我可以通过NOT IN(SubQuery)类型交易完成类似的事情.

我如何在LINQ中执行此操作?

小智 6

我想你可以用 Any

最后一行是

!(ps.tblProvider.tblProviderReferralHolds.Any(h => h.TerminateDate == null))
Run Code Online (Sandbox Code Playgroud)