ExecuteQuery() 方法返回一个 IEnumerable,但有没有办法让它返回 IQueryable?
问问题
4125 次
2 回答
9
好吧,你可以打电话AsQueryable
,但它不会有任何好处。问题是,当您使用 时ExecuteQuery
,查询是不可组合的,因为 LINQ to SQL 不能“理解”它。
的核心目的之一IQueryable<T>
是允许将查询的各个方面组合在一起,然后 LINQ to SQL 可以将它们转换为单个 SQL 查询。当查询的某个位实际上是不透明的时,这不起作用。
于 2009-06-30T18:37:28.620 回答
1
如果需要,可以将查询结果导出到列表,然后将其转换为 IQueryable。请参阅下一个示例代码:
public IQueryable<Data> GetData()
string query = @"select ...";
object[] parameters = new object[...]{...};
var resultQuery = this.DataContext.ExecuteQuery<SICDB.Data>(query, parameters);
var tempList = resultQuery .ToList();
return tempList.AsQueryable();
}
于 2011-07-12T20:00:59.747 回答