的LINQ to SQL的executeQuery()作为IQueryable的(linq to s

2019-09-17 08:24发布

的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