1
鑑於以下LINQ語句,有人能告訴我是否有可能將select部分重構爲表達式樹?我之前沒有使用過表達式樹,也沒能找到關於Selects的很多信息。注意,這將被轉換爲SQL並在SQL Server中運行,而不是在內存中運行。如何重構LINQ select語句
var results = db.Widgets
.Select(w => new
{
Name = (w is x) ? "Widget A" : "Widget B"
});
我希望能夠做到這一點..
var name = [INSERT REUSABLE EXPRESSION]
var somethingElse = [INSERT REUSABLE EXPRESSION]
var results = db.Widgets.Select(w => new { Name = name, SomethingElse = somethingElse });
顯然預期用途是用於更復雜的語句。
所以'WidgetType'是一個字符串?你想將一個表達式分配給一個字符串?或者你想讓WidgetType成爲一個表達式。 –
@JeroenvanLangen WidgetType只是一個字符串。我試圖找到一種方法來重構我的LINQ代碼中常用的select語句 – Grant
據我所知'Expression'與'delegate'非常相似,區別在於它用於將客戶端的邏輯轉換爲SQL查詢服務器,在那裏執行查詢並將結果返回**,所以你寫的代碼是非常奇怪的,並且很難實現,至少你必須遵循將委託或表達式傳遞給方法。 –