的executeQuery()方法返回一个IEnumerable,但有没有办法让它返回IQueryable的?
Answer 1:
嗯,你可以调用AsQueryable
,但它不会做任何好处。 问题是,当您使用ExecuteQuery
,查询不是因为组合的 LINQ to SQL的不“理解”它是这样。
一项所述的芯目的IQueryable<T>
是允许一个查询的各个方面将被组合在一起,然后LINQ到SQL可以将它们转换成一个单一的SQL查询。 这只是当查询的一个位是有效的不透明不起作用。
Answer 2:
如果你愿意,你可以导出结果查询到列表中,并且未来将其转换为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();
}
文章来源: linq to sql ExecuteQuery() as IQueryable