我正在编写一个包含多个连接操作的查询。我想在一个函数中编写这个查询,以便每次我需要这个查询时都可以调用这个函数。我的功能和查询如下。由于我有几个连接操作并且我不想定义复杂的返回类型,所以我只保留返回类型IQueryable
。
private IQueryable getMySubQuery(MyContext db)
{
var query = db.Orders
.Join( ... )
.Join( ... )
.Join( ... );
return query;
}
public IQueryable <MyType> getData()
{
var db = ...
...
...
var query = getMySubQuery(db)
.Select( /// ERROR ???
return query;
}
我收到一个错误:System.Linq.IQueryable 不包含Select
.
我知道如果我将getMySubQuery()
方法的返回类型定义为IQueryable <SomeType>
,它将解决问题。但问题是我必须定义一个包含 50 个字段的非常复杂的类型。我不想在getMySubQuery()
函数中进行投影。有什么方法可以在不创建复杂类型的情况下解决它?我想使用IQueryable
而不是IEnumerable
?