2017-05-29 24 views
3

我無法圍繞如何通過將表達式指定爲參數來管理選擇查詢中的列。LINQ to Entities選擇具有表達式參數的列

Method A(IQueryable<Order> query) 

裏面方法A我想指定選擇的列,所以我沒有得到所有列向右走,像這樣:

query.Select(x => new { x.OrderNumber, x.Payment, x.Customer }) 

這很容易,如果我直接在方法A指定此,但我想使用參數傳遞信息。 我試圖用這樣的表達:

Expression<Func<Order, dynamic>> columns 

但我不能得到它的工作,因爲我只能指定一個列,其中我調用方法A,就像這樣:

MethodA(query, (x) => x.OrderNumber); 

我怎樣才能指定多個屬性?

回答

0

如果您只是想傳遞列名稱,爲什麼不將字符串作爲數組傳遞?

void MethodA(params string[] columns)

+0

我想用LINQ的方式傳遞屬性。 我基本上想傳遞query.Select()表達式。 – mp1990

2

我找到了解決方案。 我只是必須指定一個匿名類型是這樣的:

MethodA(query, order => new { order.OrderNumber, order.Payment }) 

現在我可以在我的選擇表達通過其他方法。