使用 dbContext 的存储过程中的 C# DataTables

问题描述 投票:0回答:0

我有一个非常复杂的存储过程,当我运行时肯定会返回值

ExecuteReader
但是当我尝试加载数据时,它似乎消失了。

        using (var dbContext = new SuperPortalDbContext())
        {
            // Create resulting data table
            System.Data.DataTable result = new DataTable(); 

            // Create command 
            var cmd = dbContext.Database.Connection.CreateCommand();
            cmd.CommandType = commandType;
            cmd.CommandText = sql;
            cmd.CommandTimeout = 120;

            // Add all parameters
            foreach (SqlParameter parameter in parameters)
            {
                var p = cmd.CreateParameter();
                p.ParameterName = parameter.ParameterName;
                p.Value = parameter.Value;
                cmd.Parameters.Add(p);
            }

            try
            {
                // Execute
                dbContext.Database.Connection.Open();
                System.Data.Common.DbDataReader reader = cmd.ExecuteReader();
                result.Load(reader);
            }
            finally
            {
                // closes the connection
                dbContext.Database.Connection.Close();
            }

            // returns the DataSet
            return result;
        }
c# sql-server entity-framework stored-procedures datatable
© www.soinside.com 2019 - 2024. All rights reserved.