EF4 Ленивая загрузка - Как заставить нагрузку? - PullRequest
2 голосов
/ 20 сентября 2011

У меня есть следующий код:

    public IEnumerable<RMAInfo> GetAllRMAsByReseller(string resellerID)
    {
        using (RMAEntities context = new RMAEntities())
        {

            IEnumerable<RMAInfo> ret = from r in GetRMAInfos_Internal(context)
                                       where r.ResellerID.ToUpper().Trim() == resellerID
                                       select r;

            return ret;
        }
    }

Когда я пытаюсь получить доступ к возвращаемому значению, я получаю ожидаемую ошибку:

The ObjectContext instance has been disposed and can no longer be used for operations that require a connection. 

Я знаю, что это происходит из-за отложенной загрузки, и теперь он пытается загрузить, когда контекст закрыт (с помощью выхода из области видимости).

Мой вопрос: как заставить нагрузку перед выходом из метода?

Первоначально я сделал это как

return ret.ToList<RMAInfo>();

Это сработало нормально, но я не уверен, что это правильный или лучший способ сделать это?

Ответы [ 2 ]

2 голосов
/ 20 сентября 2011

query.ToList(); - правильный способ принудительной загрузки результатов.Как еще вы бы форсировали оценку запроса linq?

1 голос
/ 20 сентября 2011

Это прекрасно и принято.

...