值不能为空。\参数名称:将动态对象映射到IQueriable时的源<class>

时间:2016-08-05 00:22:27

标签: c# entity-framework linq-to-sql

我正在使用Entity Framework将数据移出数据库。从db中选择的值是动态对象,如&#34;选择new {a = db.a,b = db.b}&#34;。然后我尝试将其作为IQueryable对象返回并获得&#34; Value不能为null。参数名称:source&#34;异常。

返回此代码的代码如下所示:

return query as IQueryable<Class>

我无法修改select语句,因此看起来像这样&#34;选择新的类{a = db.a,b = db.b}&#34;因为EF给了我一个&#34;你不能这样做!&#34;错误。

有关如何管理此问题的任何建议?我需要它作为IQueryable因为我使用一些静态扩展来进一步修改IQueryable进行过滤/排序/分页。我不确定我是否可以将所有这些应用于动态对象。

1 个答案:

答案 0 :(得分:0)

找到我的答案。我将查询设置为var查询,并且在我选择新的类{}时拒绝了它。这导致了另一个&#34;你无法做到!&#34;错误。当我切换到IQueryable query = ...它工作正常。叹气......这就是我因疲倦和过度劳累所得到的......