使用上下文和sql命令创建事务C#
问题描述:
我想创建两个保存的事务之一:一个通过实体框架的上下文,另一个使用sql命令。使用上下文和sql命令创建事务C#
我如何获得一个连接,将它传递给另一个并创建一个事务?
例如:
var ctx = ApplicationContext();
var tr = ctx.Transaction.where(x=>x.id=1);
tr.status = 5;
ctx.SaveChanges();
using (SqlConnection connection = new SqlConnection(ConnectionString))
{
using (SqlCommand command = new SqlCommand(query, connection))
{ //set query and params
connection.Open();
command.ExecuteNonQuery();
}
答
我不能在此刻进行测试,但你可以看看的DbContext的 Database property
。在这里你可以找到获取交易对象和连接本身的属性和方法。
您可以将它们用于您的命令
var ctx = ApplicationContext();
using(var tr = ctx.Database.BeginTransaction())
{
ctx.SaveChanges();
// Not sure if at this point the connection is still open
// or not disposed. You need to experiment here.
using (SqlCommand command = new SqlCommand(query, ctx.Database.Connection))
{
command.ExecuteNonQuery();
tr.Commit();
}
}
但在这一点上,你会发现一个名为ExecuteSqlCommand方法的存在,可能会
+1
我会尽力,谢谢。在这里找到一个稍微不同的答案:https://msdn.microsoft.com/en-us/library/dn456843%28v=vs.113%29.aspx?f=255&MSPPError=-2147217396它首先创建连接 – piris
你在这里使用的是什么versione的EntityFramework的再次简化代码? – Steve
实体框架6 – piris