using (var db = new DB())
{
var list =db.OrderMains.AsEnumerable();
var list2 = db.Markets.AsEnumerable();
//如果查询条件中的某一个不为空的时候,则用下面的多条件查询语句
if (condition.order_Id.IsNotNullOrEmpty())
{
list = list.Where(t1 => t1.order_Id.Contains(condition.order_Id));
}
if (condition.orderDate.IsNotNullOrEmpty())
{
list = list.Where(t1 => Convert.ToDateTime(t1.orderDate)>= Convert.ToDateTime(condition.orderDate));
}
if (condition.marketId.IsNotNullOrEmpty())
{
list2 = list2.Where(t2 => t2.Name.Contains(condition.marketId));
}
if (condition.orderMoney.IsNotNullOrEmpty())
{
list = list.Where(t1 => Convert.ToDateTime(t1.orderDate) <= Convert.ToDateTime(condition.orderMoney));
}
var result = (from t1 in list
join t2 in list2 on t1.marketId equals t2.Market_Id
select new
{
Id = t1.Id,
orderDate = t1.orderDate,
orderMoney = t1.orderMoney,
marketId = t2.Name,
order_Id = t1.order_Id
}).ToList();
return result;
}
.AsEnumerable()延迟执行,不会立即执行。当调用.AsEnumerable()的时候,实际上什么都没有发生。 .ToList()则是立即去执行 下面的两个实体类的多条件查询就是运用了先AsEnumerable,再ToList,这样可以直接执行一次,不然就去执行多次ToList using (var db = new DB()) { ...