相关疑难解决方法(0)

为什么我需要ToList()来避免处置上下文错误?

我正在编写一些代码来使用EntityFrameWork访问数据库.代码是:

public IEnumerable<Rows> GetRows(int id)
{
    using (var context = new ApplicationDbContext())
    {
        var repository = new EntityFrameWorkRepository<int, RowEntity>(context);
        //need a ToList() here to prevent disposed dbcontext errors
        return repository.GetRowsFromDb(id).ToList();
    }
}
Run Code Online (Sandbox Code Playgroud)

GetRowsFromDb()使用LINQ查询数据库并使用id过滤结果.

我最初在没有ToList()调用的情况下编写了上面的方法,但是当我尝试访问返回的IEnumerable中的对象时,我会得到一个关于dbcontext已被处置的异常.我不明白上面的代码如何解决问题,虽然它确实有效.我假设ToList()深度复制对象,这可能提供了与上下文/数据库的必要分离,但是原始对象肯定可以使用吗?

c# linq entity-framework asp.net-mvc-5

8
推荐指数
2
解决办法
1784
查看次数

标签 统计

asp.net-mvc-5 ×1

c# ×1

entity-framework ×1

linq ×1