EF6를 사용하면 다음과 같이 사용할 수있는 새 트랜잭션이 있습니다.
using (var context = new PostEntityContainer())
{
using (var dbcxtransaction = context.Database.BeginTransaction())
{
try
{
PostInformation NewPost = new PostInformation()
{
PostId = 101,
Content = "This is my first Post related to Entity Model",
Title = "Transaction in EF 6 beta"
};
context.Post_Details.Add(NewPost);
context.SaveChanges();
PostAdditionalInformation PostInformation = new PostAdditionalInformation()
{
PostId = (101),
PostName = "Working With Transaction in Entity Model 6 Beta Version"
};
context.PostAddtional_Details.Add(PostInformation);
context.SaveChanges();
dbcxtransaction.Commit();
}
catch
{
dbcxtransaction.Rollback();
}
}
}
일이 옆으로 갈 때 롤백이 실제로 필요합니까? Commit 설명에 "기본 저장소 트랜잭션을 커밋합니다."라고 나와 있기 때문에 궁금합니다.
롤백 설명은 "기본 저장소 트랜잭션을 롤백합니다."라고 말합니다.
이것은 Commit이 호출되지 않으면 이전에 실행 된 명령이 저장되지 않을 것으로 보이므로 궁금합니다. 하지만 그렇다면 Rollback 함수를 호출하는 이유는 무엇일까요? EF5에서는 논리적으로 보이는 롤백 기능 (완료 만 해당)이없는 TransactionScope를 사용했습니다. MS DTC 이유로 인해 TransactionScope를 더 이상 사용할 수 없지만 위의 예와 같은 try catch를 사용할 수 없습니다 (즉, Commit 만 필요함).