Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/339.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
ObjectContext实例已被释放,不能再用于需要连接的操作。C#_C#_Asp.net Mvc_Html_Visual Studio_Razor - Fatal编程技术网

ObjectContext实例已被释放,不能再用于需要连接的操作。C#

ObjectContext实例已被释放,不能再用于需要连接的操作。C#,c#,asp.net-mvc,html,visual-studio,razor,C#,Asp.net Mvc,Html,Visual Studio,Razor,我试图将一个列表转换为数据集,但该表似乎有一个关系,不让我走 这是我尝试将列表转换为数据集的代码 我假设T是EF中的某个上下文对象?此错误通常意味着您试图读取加载的DbContext之外的导航属性。如果要完整地传输此对象,则在拉入数据时需要包含所有导航属性。请使用try-catch并找出内部异常的含义。这是因为您正在使用块将数据访问(EF上下文实例化等)包装在一个中。你不应该这样做。您的上下文应该是请求范围。您只需将其设置为控制器上的字段即可处理此问题,但最好使用您选择的DI容器将其插入。我想T

我试图将一个列表转换为数据集,但该表似乎有一个关系,不让我走

这是我尝试将列表转换为数据集的代码


我假设T是EF中的某个上下文对象?此错误通常意味着您试图读取加载的DbContext之外的导航属性。如果要完整地传输此对象,则在拉入数据时需要包含所有导航属性。请使用try-catch并找出内部异常的含义。这是因为您正在使用块将数据访问(EF上下文实例化等)包装在一个
中。你不应该这样做。您的上下文应该是请求范围。您只需将其设置为控制器上的字段即可处理此问题,但最好使用您选择的DI容器将其插入。我想T是EF中的某个上下文对象?此错误通常意味着您试图在加载的DbContext之外读取导航属性。如果要完整地传输此对象,则在拉入数据时需要包含所有导航属性。请使用try-catch并找出内部异常的含义。这是因为您正在使用
块将数据访问(EF上下文实例化等)包装在一个
中。你不应该这样做。您的上下文应该是请求范围。您只需在控制器上将其设置为字段即可处理该问题,但最好使用您选择的DI容器将其注入。
public static DataSet ToDataSet<T>(this IList<T> list)
    {
        Type elementType = typeof(T);
        DataSet ds = new DataSet();
        DataTable t = new DataTable();
        ds.Tables.Add(t);

        //add a column to table for each public property on T
        foreach (var propInfo in elementType.GetProperties())
        {
            Type ColType = Nullable.GetUnderlyingType(propInfo.PropertyType) ?? propInfo.PropertyType;

            t.Columns.Add(propInfo.Name, ColType);
        }

        //go through each property on T and add each value to the table
        foreach (T item in list)
        {
            DataRow row = t.NewRow();
            foreach (var propInfo in elementType.GetProperties())
            {
                row[propInfo.Name] = propInfo.GetValue(item, null) ?? DBNull.Value; 



            }

            t.Rows.Add(row);
        }

        return ds;
    }