Итак, я хочу вернуть некоторые данные, и я использую WCF Data Services и Entity Framework, которые выглядят следующим образом:
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
?Иногда данные могут содержать до 100 тыс. Строк, поэтому приведение к списку требует значительного объема памяти.Было бы также неплохо по-настоящему воспользоваться преимуществами отложенного выполнения и вернуть только истинный IQueryable.