实现方式你也说了,主要就是判断条件,然后过滤。我的方法如下:
MyProject.BaseDBAPI.MyProject myDal = new MyProject.BaseDBAPI.MyProject(_ConnectionString);
IQueryable
if (guidInfoTreeID != null && guidInfoTreeID != Guid.Empty)
{
query = query.Where(i => i.PkUnderInfoTreeID == guidInfoTreeID);
}
多的条件再多加就行,当然,也可以拉姆达直接生成,看你的需要了
var tq =Entities.Product.Where(item=>item.Status==1);
//条件一
if (!string.IsNullOrEmpty(codePart != null && codePart != string.Empty))
{
tq = tq.Where(item => item.code.Contains(codePart));
}
//条件二
if (!string.IsNullOrEmpty(namePart))
{
tq = tq.Where(item => item.Name.Contains(namePart));
}
//条件三
if (typeId.HasValue)
{
tq = tq.Where(item => item.TypeId ==typeId);
}
//排序
tq=tq.OrderBy(item=>item.Id);
//结果集开始索引
if(StartIndex.HasValue)
{
tq =tq.Skip(StartIndex.Value);
}
//结果集记录数量限制
if(limitCount.HasValue)
{
tq = tq.Take(limitCount);
}
//最后执行查询
List