[英]linq query dynamically inside where
我想動態更改查詢的特定部分-取決於if條件的結果。 我很高興您的幫助:
if (someCondition == true)
var ADDITION_FILTER_CRITERIA = && z.t.Name == Keyword
else
var ADDITION_FILTER_CRITERIA = "";
var ToursPerDestination = await _context.Tours
.Join(_context.CruiseDestinations, t => t.DestinationId, d => d.DestinationId, (t, d) => new { t, d })
.Where(z => z.d.CruiseId == SelectedCruise.CruiseId ADDITION_FILTER_CRITERIA )
.Select(z => new ToursViewModel()
{
Name = z.t.Name,
}).OrderByDescending(z => z.Name).ToListAsync().ConfigureAwait(false);
您可以創建Func<string, bool>
並根據someCondition
確定要檢查的someCondition
:
Func<string, bool> ADDITION_FILTER_CRITERIA;
if (someCondition == true)
ADDITION_FILTER_CRITERIA = (string s) => s == Keyword;
else
ADDITION_FILTER_CRITERIA = (string s) => true;
var ToursPerDestination = await _context.Tours
.Join(_context.CruiseDestinations, t => t.DestinationId, d => d.DestinationId, (t, d) => new { t, d })
.Where(z => z.d.CruiseId == SelectedCruise.CruiseId && ADDITION_FILTER_CRITERIA(z.t.Name) )
.Select(z => new ToursViewModel() { Name = z.t.Name }).OrderByDescending(z => z.Name).ToListAsync().ConfigureAwait(false);
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.