我需要执行返回多个结果集的Raw SQL查询。这可能在EF CF中吗?
谢谢!
答案 0 :(得分:3)
是的,你可以! ;)您也可以在Entity Framework Code First中使用DbCommand执行原始SQL查询。
您可以使用多个结果集执行查询,并使用NextResult()
类的SqlDataReader
方法跳转到下一个结果集。
namespace MyNamespace
{
public class MyDbContext : DbContext
{
}
public class Test
{
public void Test()
{
MyDbContext context = new MyDbContext();
DbCommand db = context.Database.Connection.CreateCommand();
db.CommandText = "SELECT propertie1 FROM Table1; SELECT propertie1 from Table2";
try
{
DbDataReader reader = db.ExecuteReader();
while (reader.Read())
{
// read your data from result set 1
string value = Convert.ToString(reader["propertie1"]);
}
reader.NextResult();
while (reader.Read())
{
// read your data from result set 2
string value = Convert.ToString(reader["propertie1"]);
}
}
catch
{
// Exception handling
}
finally
{
if (db.Connection.State != ConnectionState.Closed)
db.Connection.Close();
}
}
}
}