[英]Creating dynamic Linq query based on property values
我有一個包含許多bool類型屬性的類。
public class FilterModel
{
public bool Hotel { get; set; }
public bool Apartment { get; set; }
public bool Guesthouse { get; set; }
}
我正在根據這些屬性是true還是false動態構建LINQ查詢。 例如,如果我有這個類的實例並且Hotel設置為true。 我想生成類似的LINQ查詢
var q = from accom in db.Accommodation
where accom.Hotel == true
select accom;
提前致謝
你在找這樣的東西嗎?
IQueryable<Accommodation> query = db.Accommodation;
if (filterModel.Hotel) query = query.Where(a => a.Hotel);
if (filterModel.Apartment) query = query.Where(a => a.Apartment);
if (filterModel.Guesthouse) query = query.Where(a => a.Guesthouse);
return query;
你想要這樣的東西:
var filterModel = GetFilterModelFromSomewhere();
var q = db.Accomodation;
if (filterModel.Hotel)
q = q.Where(accom => accom.Hotel);
if (filterModel.Apartment)
q = q.Where(accom => accom.Apartment);
if (filterModel.Guesthouse)
q = q.Where(accom => accom.Guesthouse);
由於查詢在您枚舉之前不會執行(通過ToList()或等效函數),您可以根據動態條件在代碼中逐個構建它。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.