Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/linq/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/google-apps-script/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Linq EF4延迟加载-如何强制加载?_Linq_Entity Framework 4.1_Lazy Loading - Fatal编程技术网

Linq EF4延迟加载-如何强制加载?

Linq EF4延迟加载-如何强制加载?,linq,entity-framework-4.1,lazy-loading,Linq,Entity Framework 4.1,Lazy Loading,我有以下代码: public IEnumerable<RMAInfo> GetAllRMAsByReseller(string resellerID) { using (RMAEntities context = new RMAEntities()) { IEnumerable<RMAInfo> ret = from r in GetRMAInfos_Internal(context)

我有以下代码:

    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;
        }
    }
我知道这是由于延迟加载造成的,它正在尝试加载,因为上下文已经关闭(通过使用超出范围)

我的问题是如何在退出方法之前强制加载

我最初是这样做的

return ret.ToList<RMAInfo>();
返回ret.ToList();

这很好,但我不确定这是正确的还是最好的方法?

这很好,可以接受。

query.ToList()是强制加载结果的正确方法。否则您将如何强制对linq查询进行求值?

不确定。这就是我问的原因。它也可以通过
新列表(IEnumerable)
强制执行。。。在这种情况下我不会使用它。作为一种风格,我会在
using
块之前将
ret
声明为
List
,在using语句中使用
ret=(from….ToList()
分配它,然后在处理上下文后返回它。这可能没有什么区别,但它看起来更清晰,更易于维护。
return ret.ToList<RMAInfo>();