我正试图通过EF6从我的数据库中提取数据。我想要TicketProcessStatus为null的所有被拒绝或已批准的票证。我希望有11张符合这些条件的票证,但我收到了具有非零TicketProcessStatus值的被拒绝和已批准的票证。我该如何设置where子句?
public IEnumerable<TEntity> FindBy(Expression<Func<TEntity, bool>> predicate)
{
IEnumerable<TEntity> results = _dbSet.AsNoTracking().Where(predicate).ToList();
return results;
}
尝试#1
var closeables = unitOfWorkCraw.Tickets
.FindBy(w => w.TicketProcessStatus == null &&
(w.TicketStatus.Equals(TicketStatus.APPROVED)
|| w.TicketStatus.Equals(TicketStatus.REJECTED)));
尝试#2
string MrNull = null;
var closeables = unitOfWorkCraw.Tickets
.FindBy(w => object.Equals(w.TicketProcessStatus, MrNull) &&
(w.TicketStatus.Equals(TicketStatus.APPROVED)
|| w.TicketStatus.Equals(TicketStatus.REJECTED)));
尝试#3
var closeables = unitOfWorkCraw.Tickets
.FindBy(w => string.IsNullOrEmpty(w.TicketProcessStatus) &&
(w.TicketStatus.Equals(TicketStatus.APPROVED)
|| w.TicketStatus.Equals(TicketStatus.REJECTED)));
回来的一个例子:
只能退回门票#3和#4。