linq动态查询如何实现

2025-04-29 23:51:47
推荐回答(2个)
回答1:

实现方式你也说了,主要就是判断条件,然后过滤。我的方法如下:
MyProject.BaseDBAPI.MyProject myDal = new MyProject.BaseDBAPI.MyProject(_ConnectionString);
IQueryable query = myDal.VInfoesLogic;
if (guidInfoTreeID != null && guidInfoTreeID != Guid.Empty)
{
query = query.Where(i => i.PkUnderInfoTreeID == guidInfoTreeID);
}

多的条件再多加就行,当然,也可以拉姆达直接生成,看你的需要了

回答2:

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 objList = tq.ToList();