Gri*_*zly 10 c# asp.net-mvc predicate
我正在使用PredicateBuilder在我的操作中创建搜索/过滤器部分.这里是:
[HttpPost]
public ActionResult Test(int? cty, string inumber, int? page)
{
var lstValues =
db.TableName.Include(x => x.Table1)
.Include(x => x.Table2)
.Include(x => x.Table3)
.ToList();
var predicate = PredicateBuilder.True<TableName>();
if (!string.IsNullOrWhiteSpace(inumber))
{
predicate = predicate.And(x => x.Inumber == inumber);
}
if (!string.IsNullOrWhiteSpace(cty.ToString()))
{
predicate = predicate.And(x => x.CtyID == cty);
}
if (predicate.Parameters.Count > 0)
{
lstValues = db.TableName.AsExpandable().Where(predicate).ToList();
Session["Paging"] = lstValues;
ViewBag.Paging = lstValues.ToPagedList(page ?? 1, 2);
return View(lstValues.ToPagedList(page ?? 1, 2));
}
else
{
return View(lstValues.ToPagedList(page ?? 1, 2));
}
}
Run Code Online (Sandbox Code Playgroud)
在这条线下,PredicateBuilder.True<TableName>();我得到了一个绿色的波浪形的说法
PredicateBuilder.True()已过时.请改用PredicateBuilder.New.
但是我已经尝试过PredicateBuilder.New<T>,1即使我没有参数的任何值,我的谓词总是得到一个值,所以cty,并且inumber为空.这会返回一个空表..当它应该通过输入else语句 返回所有记录return View(lstValues.ToPagedList(page ?? 1, 2));.
当我使用时,PredicateBuilder.True<T>我获取所有参数为null时返回的所有记录.
有什么想法吗?任何帮助表示赞赏.
Joh*_*mer 12
var predicate = PredicateBuilder.New<TableName>(); 相当于 Expression<Func<TableName, bool>> predicate = item => false;
您想要的是PredicateBuilder.New<TableName>(true);将默认行为更改为包括,而不是排除.
| 归档时间: |
|
| 查看次数: |
4441 次 |
| 最近记录: |