在处理DbContext后使用EF-linq-query-result是否有效?

时间:2016-09-14 07:35:27

标签: c# dbcontext

我在using-DbContext范围内有所有逻辑函数。 对于我想写的未来代码(也许是重构)我考虑将其更改为这种形式,我使用上下文加载列表,并在它之后立即处理它并使用列表进行进一步的计算。

Test()
{
    var list = (List<MyObject>)null;

    using( var ctx = new MyDbContext() )
    {
        list = ctx.MyTable.ToList();
    }

    // is the list guaranteed to be unchanged?
    foreach( var item in list )
    {

    }
}

唯一的区别(正如我猜的那样)是EF删除了对象的缓存,所以我无法再更新数据库(我通常不想要/使用的东西)。

在处理完上下文后使用列表是否安全?

1 个答案:

答案 0 :(得分:1)

简短的回答,是的。一旦你调用ToList(),对象就应该与EF分离,但仍然会有一个由EF定义的跟踪代理。

但是没有EF的东西会对它起作用,比如懒人加载......