我的视图页面中有15列,例如参考名称,形状,颜色,重量,价格等
我得到所有这些数据以优化数据库,如果用户没有选择形状,那么它不使用形状来细化,无论用户选择进行细化,只有那些项应该在查询中。
获取数据的代码 -
[HttpPost]
public ActionResult ParametricSearch(List<string> SourceId, List<string> ShapeId, int[] Weights, List<string> ColorId)
{
...some code is here....
}
我的问题是当用户没有选择'shape'然后它是null并且我不想在查询中添加它以进行优化时,只有选择项应该在查询中。 如何使用这些字段编写查询来优化所有数据库
答案 0 :(得分:1)
您可以使用LINQ to Entities链接Where
子句。这些方面的东西:
[HttpPost]
public ActionResult ParametricSearch(List<string> SourceId, List<string> ShapeId, int[] Weights, List<string> ColorId)
{
var query = yourDataContext.YourEntityName;
if (SourceId != null && SourceId.Count > 0)
{
query = query.Where(x => SourceId.Contains(x));
}
if (ShapeId!= null && ShapeId.Count > 0)
{
query = query.Where(x => ShapeId.Contains(x));
}
if (ColorId!= null && ColorId.Count > 0)
{
query = query.Where(x => ColorId.Contains(x));
}
var result = query.Take(50).ToList();
return View(result);
}