ExecuteQuery()方法返回一个IEnumerable,但是有没有办法让它返回IQueryable呢?
发布于 2009-06-30 18:37:29
嗯,你可以调用AsQueryable,但这不会有任何好处。问题是,当您使用ExecuteQuery时,查询不是可组合的,因为LINQ to SQL并不能“理解”它。
IQueryable<T>的核心目的之一是允许将查询的各个方面组合在一起,然后LINQ to SQL可以将它们转换为单个SQL查询。当查询的某一部分实际上是不透明的时,这就不起作用了。
发布于 2011-07-13 04:01:00
如果需要,可以将查询结果导出到列表,然后将其转换为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();
}https://stackoverflow.com/questions/1065241
复制相似问题