Thứ Tư, 4 tháng 11, 2015

Get DataTable using EF DbContext

public System.Data.DataTable GetDataTable(string sql)
{
    DataTable dt = new DataTable();
    var conn = DbContext.Database.Connection;
    var connectionState = conn.State;

    if (connectionState != ConnectionState.Open)
        conn.Open();
    using (var cmd = conn.CreateCommand())
    {
        cmd.CommandText = sql;
        using (var reader = cmd.ExecuteReader())
        {
            dt.Load(reader);
        }
    }

    if (connectionState != ConnectionState.Open)
        conn.Close();

    return dt;
}