Adm*_*vić 25 transactions transactionscope entity-framework-4
我正在构建我自己的自定义存储库,基于实体框架,我正在创建一些扩展方法,允许我将部分视图模型保存为实体模型,因此我正在构建自己的添加和更新方法.
目前,每个方法都有来自DbContext的SaveChanges(),在末尾调用,这意味着每个模型都会调用一个调用.
我正在为MVC4站点构建这个基本DAL模式,这意味着大多数时候我将访问1个模型,但事实并非必须如此.
在更新即3个实体时为每个模型调用SaveChanges()是不是太糟糕的做法,还是应该先将所有内容添加到对象上下文中,而不是将SaveChanges()作为某种事务提交?
Wah*_*tar 72
我知道这是一个迟到的答案,但我发现分享很有用.
现在,在EF6它更容易使用到acheeve此dbContext.Database.BeginTransaction()
像这样 :
using (var context = new BloggingContext())
{
using (var dbContextTransaction = context.Database.BeginTransaction())
{
try
{
// do your changes
context.SaveChanges();
// do another changes
context.SaveChanges();
dbContextTransaction.Commit();
}
catch (Exception ex)
{
//Log, handle or absorbe I don't care ^_^
}
}
}
Run Code Online (Sandbox Code Playgroud)
有关更多信息,请查看此内容
再次它在EF6 Onwards
SaveChanges
当相关实体应该在单个事务中持久化时,多次调用(没有事务范围)是一种不好的做法.你创建的是漏洞抽象.创建一个单独的工作单元类或使用它ObjectContext/DbContext
自己.
归档时间: |
|
查看次数: |
43916 次 |
最近记录: |