Tôi có một đoạn mã liên quan đến nhiều lần chèn nhưng cần phải thực hiện phương thức submitchanges trước khi tôi kết thúc chèn vào các bảng khác để tôi có thể lấy được một Id. Tôi đã được tìm kiếm thông qua internet và couldnt tìm thấy làm thế nào để tạo ra một giao dịch trong LINQ để sql. Tôi đã đặt bình luận trong mã nơi tôi muốn giao dịch diễn ra.Làm thế nào để tạo một giao dịch LINQ to SQL?
var created = false;
try
{
var newCharacter = new Character();
newCharacter.characterName = chracterName;
newCharacter.characterLevel = 1;
newCharacter.characterExperience = 0;
newCharacter.userUsername = userUsername;
newCharacter.characterClassID = ccslst[0].characterClassID;
//Open transaction
ydc.Characters.InsertOnSubmit(newCharacter);
ydc.SubmitChanges();
foreach (var ccs in ccslst)
{
var cs = new CharacterStat();
cs.statId = ccs.statID;
cs.statValue = ccs.statValue;
cs.characterID = newCharacter.characterID;
ydc.CharacterStats.InsertOnSubmit(cs);
}
var ccblst = ydc.ClassBodies.Where(cb => cb.characterClassID == newCharacter.characterClassID);
foreach (var ccb in ccblst)
{
var charBody = new CharacterBody();
charBody.bodyId = ccb.bodyId;
charBody.bodyPartId = ccb.bodyPartId;
charBody.characterID = newCharacter.characterID;
ydc.CharacterBodies.InsertOnSubmit(charBody);
}
ydc.SubmitChanges();
created = true;
//Commit transaction
}
catch (Exception ex)
{
created = false;
//transaction Rollback;
}
return created;
EDIT: Quên kể rằng ydc là DataContext của tôi
Không chắc về cú pháp, tôi đã đặt mã của tôi trong phạm vi này: sử dụng (TransactionScope ts = new TransactionScope()) { // mã của tôi } – Drahcir
Tôi đã thêm mã vào mã của bạn và được dán làm ví dụ. – tvanfosson
Nó hoạt động, nhờ – Drahcir