如何在EF中直接运行SQL命令

2025-05-23 16:19:35
推荐回答(2个)
回答1:

db.Database.SqlQuery(sql).AsQueryable();//这个返回是queryable
返回DataTable要自己写个扩展方法

public static DataTable SqlQueryForDataTatable(this Database db,
string sql,
SqlParameter[] parameters)
{

SqlConnection conn = new System.Data.SqlClient.SqlConnection();
conn.ConnectionString = db.Connection.ConnectionString;
if (conn.State != ConnectionState.Open)
{
conn.Open();
}
SqlCommand cmd = new SqlCommand();
cmd.Connection = conn;
cmd.CommandText = sql;

if (parameters.Length > 0)
{
foreach (var item in parameters)
{
cmd.Parameters.Add(item);
}
}

SqlDataAdapter adapter = new SqlDataAdapter(cmd);
DataTable table = new DataTable();
adapter.Fill(table);
return table;
}

回答2:

用ExecuteStoreCommand方法