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