2012-07-09 56 views
2

我正在使用System.Linq.Dynamic作爲需要用戶選擇在運行時選擇/投影哪些屬性的項目。動態Linq .Select() - 如何處理某些空值

所以,我有這樣的查詢:

var query = db.Users.Select("New(UserId, Username, Groups.Max(DateInserted) AS DateInserted)"); 

的DateInserted列不爲空,但並不是所有的用戶都組。 所以,當沒有組返回一個用戶,我得到以下錯誤:

"The cast to value type 'DateTime' failed because the materialized value is null. Either the result type's generic parameter or the query must use a nullable type." 

有什麼我可以在查詢呢?我無法使列可以爲空。

感謝您的任何幫助。

回答

0

轉換爲可空類型DateTime?像這樣: var query = db.Users.Select("New(UserId, Username, DateTime?(Groups.Max(DateInserted)) AS DateInserted)");

+0

謝謝你的建議。當我嘗試這樣做時,我得到以下異常:「LINQ to Entities只支持無參數的構造函數和初始化器。」 – 2012-11-20 18:07:21