c# – 使用.声明实体FrameWork上下文

这是声明实体框架上下文的最佳实践

function()
{
    DBContext context = new DBContext();

    //Entity code

    return ;
}

要么

function()
{
    using(DBContext context = new DBContext())
    {
        //Entity code
    }
}

我们是否需要在EntityFrameWork中使用?如果是,我的第二个问题

在DataAccess Layer中我执行EF并将结果存储在IEnumerable里面使用

我的DL

function()
{
    IEnumerable something = null;
    using(DBContext context = new DBContext())
    {
        IEnumerable something = ....
    }
    return something;
}

在控制器中

function()
{
    List some = something.ToList();
}

在我的控制器中我得到这个列表,因为我需要做一些查找操作

"The operation cannot be completed because the DbContext has been disposed Entity Framework"

是的我可以从DL返回一个列表,它工作正常

如果我使用IEnumerable,我该如何处理?

您可以通过在上下文处理之前调用IEnumerable上的.ToList()来避免延迟加载EF行为(即在您的使用块内)
翻译自:https://stackoverflow.com/questions/16058769/declaring-entity-framework-contexts-with-using

转载注明原文:c# – 使用.声明实体FrameWork上下文