複数の結合操作を含むクエリを作成しています。このクエリが必要になるたびにこの関数を呼び出すことができるように、このクエリを関数に記述したいと考えています。私の機能とクエリは次のとおりです。いくつかの結合操作があり、複雑な戻り値の型を定義したくないので、戻り値の型はそのままにし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
?を使用したい