【发布时间】:2017-01-24 16:00:49
【问题描述】:
我有一个疑问,_context.Database.ExecuteSqlCommandAsync 方法是否自动提交事务。
我的代码如下所示:
using (DatabaseContext _db = new DatabaseContext())
{
using(var _transaction = _db.Database.BeginTransaction())
{
try
{
await _db.Database.ExecuteSqlCommandAsync(query, paramsList);
_transaction.Commit();
}
catch(Exception ex)
{
_transaction.Rollback();
throw;
}
}
}
我假设该方法不会自动提交事务,所以我决定手动提交。
这是一种好的做法?还是没有必要这样做?
【问题讨论】:
-
老实说,我认为确实如此。当调用从 ExecuteSqlCommandAsync 返回时,尽管调用了 BeginTransaction,但调用后 Database.CurrentTransaction 为 null。
标签: c# entity-framework rawsql