Попробуйте что-то вроде
var predicateBuilder = PredicateBuilder.New<Master>(true);
predicateBuilder = xyear != null : predicateBuilder.And(c => c.Year == xyear):
predicateBuilder;
predicateBuilder = xmonth != null : predicateBuilder.And(c => c.Month == xmonth) :
predicateBuilder;
var query = db.Masters.Include(m => m.MasterOrigin)
.Where(peridicateBuilder);
return View(query.ToList());
Предполагается, что вы используете пакет NuGet PredicateBuilder.
Это добавляет в предложениях месяца или года where
, только если параметр не null
.
Альтернатива без построителя предикатов:
var query = db.Masters.Include(m => m.MasterOrigin);
if (xyear =! null)
{
query = query.Where(c => (c.Year == xyear));
}
if (xmonth = !null)
{
query = query.Where(c => (c.Year == xmonth));
}
return View(query.ToList());