2

我有以下内容:

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))

我的问题与最后一行有关。那是错误的,我可以在写它时说出来,但我似乎无法弄清楚如何将其更改为我想要的。

所有这些表都设置了适当的关系。 tblProvider是一对多,tblProviderReferralHolds我想要完成的是将我的结果限制为仅提供者当前没有保留的服务。

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

如何在 LINQ 中执行此操作?

4

2 回答 2

6

我认为你可以使用Any

最后一行是

!(ps.tblProvider.tblProviderReferralHolds.Any(h => h.TerminateDate == null))
于 2012-07-17T17:17:00.537 回答
0

查看 linq“除了”。

http://msdn.microsoft.com/en-us/library/system.linq.enumerable.except.aspx

于 2012-07-17T17:12:44.773 回答