我与类编码Transaction
为.NET和在这个具体的方法我只想重新实例Transaction
来说,如果它不是已经实例。下面是与某些实体框架方法一起完成的示例。
if (Transaction.Current != null)
{
using (var transaction = CreateTransaction())
{
_dbSet.Attach(item);
_dbSet.Remove(item);
_context.SaveChanges();
transaction.Complete();
}
}
else
{
_dbSet.Attach(item);
_dbSet.Remove(item);
_context.SaveChanges();
}
我想知道是否有一种更聪明的方法仅在using
上述条件成立的情况下才使用-line。我不喜欢重复相同的代码两次。
从技术上讲,您可以编写类似以下内容(因为如果transaction
为null
,则不会由于的结果而发生自动处置using
,请参见http://msdn.microsoft.com/zh-cn//library/yh598w02.aspx):
using (var transaction = Transaction.Current == null ? CreateTransaction() : null)
{
_dbSet.Attach(item);
_dbSet.Remove(item);
_context.SaveChanges();
if(transaction != null)
transaction.Complete();
}
(我不确定该检查。在原始代码中Transaction.Current != null
,但是Transaction.Current == null
看起来更合逻辑。)
但我会考虑只是分组
_dbSet.Attach(item);
_dbSet.Remove(item);
_context.SaveChanges();
变成一个单独的功能。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句