C#多参数搜索实体框架6.0

C#多参数搜索实体框架6.0,c#,entity-framework,C#,Entity Framework,在我的表中,我有4列:BAZAR_TEXT,CATEGORY,country,PRICE,我想通过文本框中的参数来搜索记录:search,CATEGORY,country,priceFrom,priceUntil var searchResult = db.bazar.Include(c => c.images).Where(da => da.BAZAR_TEXT.Contains(search) || search == null); var categoryResult = s

在我的表中,我有4列:
BAZAR_TEXT
CATEGORY
country
PRICE
,我想通过文本框中的参数来搜索记录:search,CATEGORY,country,priceFrom,priceUntil

var searchResult = db.bazar.Include(c => c.images).Where(da => da.BAZAR_TEXT.Contains(search) || search == null);

var categoryResult = searchResult.Where(x => x.CATEGORY == category || category == null);

var countyResult = categoryResult.Where(x => x.DISTRICT == county || county == null);

var priceFromResult = countyResult.Where(x => x.PRICE >= priceFrom);
var priceUntilResult = priceFromResult.Where(x => x.PRICE <= priceUntil);

return View(priceUntilResult.ToList().ToPagedList(page ?? 1, 10));
但如果我添加其他结果,则列表为空

注意:文本框中的所有参数都可以为null,但表中的列不能为null。

var searchResult=db.bazar.Include(c=>c.images).AsQueryable();
var searchResult = db.bazar.Include(c => c.images).AsQueryable();
if(search != null){
    searchResult = searchResult.Where(da => da.BAZAR_TEXT.Contains(search));
}

if(category != null){
    searchResult = searchResult.Where(x => x.CATEGORY == category);
}

if(county != null){
    searchResult = searchResult.Where(x => x.DISTRICT == county);
}

if(priceFrom != null){
    searchResult = searchResult.Where(x => x.PRICE  == priceFrom);
}

if(priceUntil != null){
    searchResult = searchResult.Where(x => x.PRICE  <= priceUntil);
}


return View(searchResult.ToList().ToPagedList(page ?? 1, 10));
如果(搜索!=null){ searchResult=searchResult.Where(da=>da.BAZAR_TEXT.Contains(search)); } 如果(类别!=null){ searchResult=searchResult.Where(x=>x.CATEGORY==CATEGORY); } 如果(县!=null){ searchResult=searchResult.Where(x=>x.DISTRICT==country); } if(priceFrom!=null){ searchResult=searchResult.Where(x=>x.PRICE==priceFrom); } if(priceUntil!=null){ searchResult=searchResult.Where(x=>x.PRICE
var searchResult=db.bazar.Include(c=>c.images).AsQueryable();
如果(搜索!=null){
searchResult=searchResult.Where(da=>da.BAZAR_TEXT.Contains(search));
}
如果(类别!=null){
searchResult=searchResult.Where(x=>x.CATEGORY==CATEGORY);
}
如果(县!=null){
searchResult=searchResult.Where(x=>x.DISTRICT==country);
}
if(priceFrom!=null){
searchResult=searchResult.Where(x=>x.PRICE==priceFrom);
}
if(priceUntil!=null){

searchResult=searchResult。其中(x=>x.PRICE您应该颠倒条件评估的顺序
。其中(x=>x.CATEGORY==CATEGORY | | CATEGORY==null)


.Where(x=>category==null | | x.category==category)

您应该颠倒条件评估的顺序
。其中(x=>x.CATEGORY==CATEGORY | | CATEGORY==null)


.Where(x=>category==null | | x.category==category)
null和string empty
之间存在差异。因此,如果使用空文本框搜索:

WebEntities db = new WebEntities();
            var searchResult = db.bazar.Include(c => c.images);
            if (!string.IsNullOrEmpty(search))
            {
                searchResult = searchResult.Where(da => da.BAZAR_TEXT.Contains(search));
            }

            if (!string.IsNullOrEmpty(category))
            {
                searchResult = searchResult.Where(x => x.CATEGORY == category);
            }

            if (!string.IsNullOrEmpty(county))
            {
                searchResult = searchResult.Where(x => x.DISTRICT == county);
            }

            if (priceFrom != null)
            {
                searchResult = searchResult.Where(x => x.PRICE >= priceFrom);
            }

            if (priceUntil != null)
            {
                searchResult = searchResult.Where(x => x.PRICE <= priceUntil);
            }


            return View(searchResult.ToList().ToPagedList(page ?? 1, 10));
WebEntities db=newwebentities();
var searchResult=db.bazar.Include(c=>c.images);
如果(!string.IsNullOrEmpty(搜索))
{
searchResult=searchResult.Where(da=>da.BAZAR_TEXT.Contains(search));
}
如果(!string.IsNullOrEmpty(类别))
{
searchResult=searchResult.Where(x=>x.CATEGORY==CATEGORY);
}
如果(!string.IsNullOrEmpty(county))
{
searchResult=searchResult.Where(x=>x.DISTRICT==country);
}
if(priceFrom!=null)
{
searchResult=searchResult.Where(x=>x.PRICE>=priceFrom);
}
if(priceUntil!=null)
{

searchResult=searchResult。其中(x=>x.PRICEnull和string empty之间存在差异。因此,如果使用空文本框进行搜索:

WebEntities db = new WebEntities();
            var searchResult = db.bazar.Include(c => c.images);
            if (!string.IsNullOrEmpty(search))
            {
                searchResult = searchResult.Where(da => da.BAZAR_TEXT.Contains(search));
            }

            if (!string.IsNullOrEmpty(category))
            {
                searchResult = searchResult.Where(x => x.CATEGORY == category);
            }

            if (!string.IsNullOrEmpty(county))
            {
                searchResult = searchResult.Where(x => x.DISTRICT == county);
            }

            if (priceFrom != null)
            {
                searchResult = searchResult.Where(x => x.PRICE >= priceFrom);
            }

            if (priceUntil != null)
            {
                searchResult = searchResult.Where(x => x.PRICE <= priceUntil);
            }


            return View(searchResult.ToList().ToPagedList(page ?? 1, 10));
WebEntities db=newwebentities();
var searchResult=db.bazar.Include(c=>c.images);
如果(!string.IsNullOrEmpty(搜索))
{
searchResult=searchResult.Where(da=>da.BAZAR_TEXT.Contains(search));
}
如果(!string.IsNullOrEmpty(类别))
{
searchResult=searchResult.Where(x=>x.CATEGORY==CATEGORY);
}
如果(!string.IsNullOrEmpty(county))
{
searchResult=searchResult.Where(x=>x.DISTRICT==country);
}
if(priceFrom!=null)
{
searchResult=searchResult.Where(x=>x.PRICE>=priceFrom);
}
if(priceUntil!=null)
{

searchResult=searchResult.Where(x=>x.PRICE虽然此代码片段可能会回答OP的问题,但如果您解释此代码片段解决问题的原因,则此答案对未来访客将更有用。虽然此代码片段可能会回答OP的问题,但如果您解释此代码片段解决问题的原因,则此答案对未来访客将更有用。