簡體   English   中英

我可以動態生成LINQ To SQL語句嗎?

[英]How dynamic can I make my LINQ To SQL Statements?

我需要在運行時根據用戶的輸入構造一個LINQ To SQL語句,我似乎無法弄清楚如何動態構建WHERE子句。

我對以下內容沒有任何問題:

string Filters = "<value>FOO</value>";
Where("FormattedMessage.Contains(@0)",Filters)

但我真正需要的是使整個WHERE子句動態化。 這樣我就可以在運行時添加多個條件(粗略的想法):

 foreach (Filter filter in filterlist)
            {
                whereclause = whereclause + "&& formattedmessage.contains(filter)";
            }

我不知道這里使用了哪些數據類型,但為什么不嘗試使用常規查詢?

var query = context.Messages
    .AsQueryable();

foreach (Filter filter in filterlist)
{
    query = query
        .Where(m => m.Contains(filter));
}

這將使用AND連接所有條件(如您的問題中所示)。

您也可以考慮使用PredicateBuilder類。 使用它可以動態地向樹中添加AND / OR條件。 請參閱http://www.albahari.com/nutshell/predicatebuilder.aspx

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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