我有以下EF Core查询:
@Convert.ToInt32(item.IC).ToString().PadLeft(12, '0')
但是我希望查询包含以下条件,而不仅仅是:
var instancesForCustomer = (from v in loyalty.VoucherAuthentication
where v.CardNumber == cardNumber
&& v.InstanceType == instanceType
&& v.PreAuthorised == false
&& v.Redeemed == false
&& v.VoucherExpiryDate > Functions.GenerateDateTimeByLocale()
&& v.PreAuthExpiryDate > Functions.GenerateDateTimeByLocale()
select v).AsNoTracking().ToArray();
成为
*WHERE PreAuthExpiry > Now*
我不清楚如何创建查询,以便将> *WHERE (PreAuthExpiry > Now OR PreAuthExpiry IS NULL)*
和Now
放在各自的块中,而不是根据EITHER IS NULL
或PreAuthExpiry > Now
。如果只是OR PreAuthExpiry IS NULL,那么所有带NULL PreAuthExpiry的记录都会返回,而忽略其他AND条件。