Dynamic Linq .Select() - 如何处理某些空值

时间:2012-07-09 19:50:35

标签: linq-to-entities dynamic-linq

我正在使用System.Linq.Dynamic进行一个项目,该项目要求用户选择在运行时选择/投影的属性。

所以,我有这样的查询:

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

DateInserted列不为null,但并非所有用户都有组。 因此,当返回没有组的用户时,我收到以下错误:

"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."

我可以在查询中做些什么吗?我不能让这个列可以为空。

感谢您的帮助。

1 个答案:

答案 0 :(得分:0)

转换为可空类型DateTime?像这样: var query = db.Users.Select("New(UserId, Username, DateTime?(Groups.Max(DateInserted)) AS DateInserted)");