0
아래의 의사 코드를 설명해주십시오.DataContext.Submit 및 TransactionScope
제 아이디어는 다음과 같습니다. 3-SubmitChanges는 o.Status를 커밋하고 o.TransactionId를 커밋하지 않으며 데이터베이스에 개체가 손상됩니다 (더 이상 일관성이 없음).
XDataContext DB = .....;
XOrder o = DB.XOrders.Single(.......);
try
{
using (var t = new TransactionScope())
{
o.Status = XOrderStatus.Completed;
DB.SubmitChanges(); // 1
string s = null;
s.Trim(); // crash here;
o.TransactionId = ......; // some calculations here
DB.SubmitChanges(); // 2
t.Complete();
}
}
catch (Exception ex)
{
XEvent e = new XEvent();
e.Type = XEventType.Exception;
e.Data = .........; // some calculations here
DB.XEvents.InsertOnSubmit(e);
DB.SubmitChanges(); // 3
}
제 사례에는 어떤 것이 있습니까?