LINQ中的动态位置

时间:2010-11-04 16:03:28

标签: c# sql linq search

您好我有这个LINQ查询:

var q =
    (from vr in Util.db.ValuationsRequests
     where vr.dtSubmitted != null
     select vr
     ).AsEnumerable<ValuationsRequest>();

但是我想用另外3个参数进行搜索:paramValuationId(int),paramValue(boolean),paramTitle(string)。

类似的东西:

if (paramTitle != string.empty)
//add this field to the where

但如果paramTitle为空,我不想搜索它。

这样做的正确方法是什么?

2 个答案:

答案 0 :(得分:5)

string paramTitle = "hello";
var q =
    (from vr in Util.db.ValuationsRequests
     where vr.dtSubmitted != null 
       && ( paramTitle == "" || vr.paramTitle == paramTitle)
     select vr
     ).AsEnumerable<ValuationsRequest>();

答案 1 :(得分:2)

var q =
(from vr in Util.db.ValuationsRequests
 where vr.dtSubmitted != null
 select vr
 ).AsEnumerable<ValuationsRequest>();

if(!string.IsNullOrEmpty(paramTitle))
   q = q.Where(p => p.ParamTitle == paramTitle);