1
返回所以我要回一些数据,和我使用WCF数据服务和实体框架,看起来像:有道IQueryable的使用WCF数据服务和EF
public class MyWcfDataService : DataService<MyEFModel>
{
[WebGet(ResponseFormat = WebMessageFormat.Json)]
public IQueryable<GetMyListEF> GetMyList()
{
using (MyEfModel context = this.CurrentDataSource)
{
return context.GetMyListEF().ToList().AsQueryable();
}
}
}
正如你可以看到我'转换为列表,然后查询。如果我只投了AsQueryable()
,我将无法读取数据,因为连接已关闭(由于延迟执行AsQueryable)。
所以我的问题是,有没有更好的方法?甚至需要using
声明?数据有时可能是100k行,因此转换为列表会使用相当数量的内存。真正利用延迟执行并只返回一个真正的IQueryable也是很好的。
感谢您的回复。我总是被告知,只要有东西实现了IDisposable,它应该被废弃。您能否以您描述的方式提供DataService工作流程文档的链接? – Darcy
您需要在您的代码拥有的所有IDisposable实例上使用using。数据源由数据服务对象拥有。它在创建数据服务对象后不久创建,并在请求处理完成后处理。不幸的是,我找不到可以描述这种情况的链接。 –