使用事务还是SaveChanges(False)和AcceptAllChanges()?我一直在调查交易,看来只要我通过,他们就会在EF中照顾自己。false到SaveChanges()然后打电话AcceptAllChanges()如果没有错误:SaveChanges(false);// ...AcceptAllChanges();万一出了什么事怎么办?我不需要回滚吗?或者,一旦我的方法超出范围,事务就结束了吗?在事务进行一半的过程中分配的任何indentiy列会发生什么情况?我想,如果有人在我的唱片坏掉之前在我的唱片之后加了一张唱片,那就意味着会有一个丢失的身份值。有什么理由使用这个标准吗?TransactionScope在我的代码中?
3 回答
Qyouu
TA贡献1786条经验 获得超11个赞
using (var context = new BloggingContext()) {
using (var dbContextTransaction = context.Database.BeginTransaction())
{
try
{
context.Database.ExecuteSqlCommand(
@"UPDATE Blogs SET Rating = 5" +
" WHERE Name LIKE '%Entity Framework%'"
);
var query = context.Posts.Where(p => p.Blog.Rating >= 5);
foreach (var post in query)
{
post.Title += "[Cool Blog]";
}
context.SaveChanges(false);
dbContextTransaction.Commit();
context.AcceptAllChanges();
}
catch (Exception)
{
dbContextTransaction.Rollback();
}
} }- 3 回答
- 0 关注
- 1606 浏览
添加回答
举报
0/150
提交
取消
