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;
}
參考網站:
http://www.cnblogs.com/wlflovenet/archive/2011/12/30/EF11.html