恢复“DbContext”在方法后丢失了

时间:2015-11-15 16:02:33

标签: c# entity-framework methods dbcontext iqueryable

我需要你的帮助。 我开始ASP.net,我无法检索“dbcontext”以在“datagrid”中显示我的请求。这是我的代码:

public IQueryable<DiagTab> Clooper(string m_ValEnvoi)
    {
        string Ladatatable = m_ValEnvoi; 

        using (var db = new DiagEntities()) 
        {
            var secki = db.DiagTabs.Where(Ladatatable); // Ladatatabase = Dynamic LinQ 

            return secki;
        }

我这样称呼(没有错误)

TheLoop pilou = new TheLoop();                                         
                pilou.Clooper(Valtest);
                var olami = pilou.Clooper(Valtest);

但如果我试试这个:

var selection_click = olami;
                    GridView1.DataSource = selection_click.ToList();
                    GridView1.DataBind(); 

代码中断并显示“无法完成操作,因为已删除DbContext”。 是否可以为此请求获取粘贴有Dbcontext? 谢谢你的帮助

2 个答案:

答案 0 :(得分:0)

在处置ToList()之前,您应该在方法中调用DbContext

答案 1 :(得分:0)

不要使用using来处置DiagEntities而不是它,如果你想在几种方法中使用它,只需在类构造函数中为DiagEntities声明一个属性。

public IQueryable<DiagTab> Clooper(string m_ValEnvoi)
    {
        string Ladatatable = m_ValEnvoi; 


            var secki = db.DiagTabs.Where(Ladatatable); // Ladatatabase = Dynamic LinQ 

            return secki;
   }