簡體   English   中英

將LINQ轉換為表達式樹

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM