【发布时间】:2011-08-25 13:11:34
【问题描述】:
所以我想返回一些数据,我正在使用 WCF 数据服务和实体框架,看起来像:
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 也很好。
【问题讨论】:
标签: entity-framework-4 wcf-data-services