C#多参数搜索实体框架6.0
在我的表中,我有4列: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
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.PRICEvar 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的问题,但如果您解释此代码片段解决问题的原因,则此答案对未来访客将更有用。