linq如何实现动态多条件查询

例如可以按照一个条件查询也可以2个条件 或者3个4个, 是不固定的,表示层调数据访问层的方法求解!... 例如可以按照一个条件查询 也可以2个条件 或者3个 4个, 是不固定的,表示层调数据访问层的方法 求解! 展开
 我来答
说着笑着d午后
2011-10-12 · TA获得超过282个赞
知道小有建树答主
回答量:426
采纳率:0%
帮助的人:268万
展开全部
我的做法是判断,然后筛选条件

public MyInfoResult GetInfoes(int intPage, int intPageSize, int intFictionID, int intPID, string strKeyword, int intState,
DateTime? dateStart, DateTime? dateEnd, string strOrderby)
{
myInfoResult = new MyInfoResult();
try
{
Fiction myDal = new Fiction(_ConnectionString);
IQueryable<TblSectionInfo> query = myDal.TblSectionInfo;

List<int> infotreeids = new List<int>();

if (intFictionID != -1)
{
query = query.Where(i => i.FkFictionID == intFictionID);
}
if (intPID != -1)
{
query = query.Where(i => i.ParentID == intPID);
}
if (!string.IsNullOrEmpty(strKeyword))
{
query = query.Where(i => i.SectionName.Contains(strKeyword));
}
if (intState != -1)
{
query = query.Where(i => i.State == intState);
}
if (dateStart != null)
{
query = query.Where(i => i.AddDate >= dateStart);
}
if (dateEnd != null)
{
query = query.Where(i => i.AddDate <= dateEnd);
}

query = IQueryable.MyOrderBy(query, strOrderby);

myInfoResult.IsSuc = true;
myInfoResult.Message = query.AsEnumerable().Skip(intPage * intPageSize).Take(intPageSize).ToList();
myInfoResult.MsgCount = query.Count();
}
catch (Exception error)
{
myInfoResult.IsSuc = false;
myInfoResult.Message = error.Message;
}
return myInfoResult;
}
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
Storm代理
2023-07-25 广告
StormProxies是一家提供动态代理服务器服务的企业,旨在帮助用户更好地管理网络访问和安全。以下是一些关于StormProxies的IP动态代理服务的特点:1. 高匿名性:StormProxies的动态代理服务器具有高匿名性,可以有效... 点击进入详情页
本回答由Storm代理提供
depluin
2011-10-11 · TA获得超过3179个赞
知道大有可为答主
回答量:3378
采纳率:75%
帮助的人:2495万
展开全部
使用表达式树吧
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式