Entity Framework執行Sql語句返回DataTable


         Entity Framework中對外開放了數據庫連接字符串,使用的時候可以直接得到這個連接字符串,然后進行相關的操作。如果在使用的過程中,發現Entity Framework中有一些滿足不了的需求的話,那么就可以用這個連接字符串,自己寫ADO的代碼,去數據庫進行相關的操作。特別是對於一些復雜的查詢,這時候,一般是想直接執行一個Sql語句,返回一個結果集。下面是一個方法,直接返回DataTable。

/// <summary>
/// EF SQL 語句返回 dataTable
/// </summary>
/// <param name="db"></param>
/// <param name="sql"></param>
/// <param name="parameters"></param>
/// <returns></returns>
public static DataTable SqlQueryForDataTatable(this Database db,
         string sql)
{
 
    SqlConnection conn = new System.Data.SqlClient.SqlConnection();
    //conn.ConnectionString = db.Connection.ConnectionString;
    //if (conn.State != ConnectionState.Open)
    //{
    //    conn.Open();
    //}
 
    conn = (SqlConnection)db.Connection;
    SqlCommand cmd = new SqlCommand();
    cmd.Connection = conn;
    cmd.CommandText = sql;
 
    SqlDataAdapter adapter = new SqlDataAdapter(cmd);
    DataTable table = new DataTable();
    adapter.Fill(table);
 
    conn.Close();//連接需要關閉
    conn.Dispose();
    return table;
}
        然后調用的時候,直接傳入Context的Database進去,就可以了。

       參考網站:

       http://www.cnblogs.com/wlflovenet/archive/2011/12/30/EF11.html


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM