Я повторяю следующий код linq с немного другой секцией WHERE каждый раз.Могу ли я использовать один и тот же код Linq для запроса для разных условий?
Я хотел бы следовать принципу DRY и указывать только модель просмотра. Есть ли способ повторного использования одного и того же запроса и динамического определения условия WHERE?
Я посмотрел вокруг здесь, и натолкнулся на некоторые подобные вопросы, но я не могу найти ответ, который имеет смысл для меня. Мне что-то не хватает?
Первый пример
List<CMSSummary> summaryList = db.CMSUpdates
.Where(i => i.PublishDate.Year == year) // only this line is different
.AsEnumerable().Select(i => new CMSSummary
{
CMSObjectID = i.CMSObjectID,
Title = i.Title,
SubTitle = i.PublishDate.ToString("ddd dd MMM"),
ToolTip = i.Title,
Summary = i.Summary,
MainImage = i.MainImage,
ItemURL = i.URL,
FullURL = "/mockup/cmspage/" + i.URL,
HTMLClasses = ""
}).ToList();
return summaryList;
Второй пример
List<CMSSummary> summaryList = db.CMSUpdates
.Where(i => i.Content.Contains(searchTerm)) // only this line is different
.AsEnumerable().Select(i => new CMSSummary
{
CMSObjectID = i.CMSObjectID,
Title = i.Title,
SubTitle = i.PublishDate.ToString("ddd dd MMM"),
ToolTip = i.Title,
Summary = i.Summary,
MainImage = i.MainImage,
ItemURL = i.URL,
FullURL = "/mockup/cmspage/" + i.URL,
HTMLClasses = ""
}).ToList();
return summaryList;
спасибо, совершенное объяснение, у меня есть сейчас, и +1 за предложение 2 способа :) –
а код отлично работает в первый раз кстати –