[英]Convert LINQ to expression tree
我想動態創建一個LINQ語句,該語句包括一個where語句,該語句必須根據頁面列表中的項目進行擴展:
private IQueryable<WS_WebShopTreeNode> GetRootNodes(List<ShopTreePage> pages, IQueryable<WS_WebShopTreeNode> node_src)
{
var rootNodes = from tn in node_src
where tn.id_WebShopTreeNode_AsParent == null &&
tn.PageNo == 1 &&
tn.PageNo == 2 &&
tn.PageNo == 3 &&
//etc.
select tn;
}
ShopTreePage
只是一個枚舉:
public enum ShopTreePage : byte
{
Unassigned = 0,
UserRole = 1,
Hardware = 2,
Software = 3,
Zubehoer = 4,
All = 5
}
我知道這可以通過表達式樹來實現。 不幸的是,我缺乏有關構建表達式樹的知識。
您忘了告訴我們哪個屬性是ShopTreePage
但我想它是PageNo
。
為什么您不能在這里簡單地使用“ Contains
?
var rootNodes = from tn in node_src
where tn.id_WebShopTreeNode_AsParent == null
&& pages.Contains((ShopTreePage)tn.PageNo)
select tn;
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.