EF 返回DataTable 扩展方法

Posted 林清的Blogs

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了EF 返回DataTable 扩展方法相关的知识,希望对你有一定的参考价值。

    public static class EFExtendMethod
    {
        public static DataTable SqlQueryToDataTable(this Database db, string sql, CommandType type = CommandType.Text, params SqlParameter[] param)
        {
            DataTable ret_dt = new DataTable();
            SqlConnection conn = db.Connection as SqlConnection;
            if (conn == null)
            {
                conn = new SqlConnection(db.Connection.ConnectionString);
            }

            if (conn.State != ConnectionState.Open)
            {
                conn.Open();
            }

            try
            {
                SqlCommand cmd = new SqlCommand(sql, conn);
                cmd.CommandType = type;

                if (param != null && param.Length > 0)
                {
                    foreach (SqlParameter p in param)
                    {
                        cmd.Parameters.Add(p);
                    }
                }

                SqlDataAdapter adapter = new SqlDataAdapter(cmd);
                adapter.Fill(ret_dt);

                conn.Close();
                return ret_dt;
            }
            catch (Exception ex)
            {
                conn.Close();
                return ret_dt;
            }
        }

        public static DataTable SqlQueryToDataTable(this Database db, string sql, params SqlParameter[] param)
        {
            return SqlQueryToDataTable(db,sql,CommandType.Text,param);
        }
    }

  

以上是关于EF 返回DataTable 扩展方法的主要内容,如果未能解决你的问题,请参考以下文章

EF添加关联的提示问题:映射从第 260 行开始的片段时有问题:

片段视图返回后执行的 Firebase 查询

C# DataTable To Json 实现

扩展方法 DataTable的ToList<T>

如何编写此扩展方法以由 EF Core 转换为 SQL Server?

"DataTable"未包含"AsEnumerable"的定义,并且找不到可接受第一个"DataTable"类型参数的可扩展方法"