Являются ли серии обновлений строк атомарными (контекст данных L2S)? Если нет, как я могу сделать их так? - PullRequest
1 голос
/ 26 июля 2011

У меня есть метод Save (), который сохранял строки с помощью Linq2Sql DataContext.

    private void Save(object sender, EventArgs e)
    {
        Validate();
        selectNumUnitsByPidCdCostRevBindingSource.EndEdit();
        var db = new AccountingDataClassesDataContext(true);
        unitCountDataSet
            .GetChanges(DataRowState.Modified).Tables[0].Rows
            .Cast<EomApp1.Formss.Accounting.Data.UnitCountDataSet.SelectNumUnitsByPidCdCostRevRow>().ToList()
            .ForEach(row =>
            {
                db.Items.First(item => item.id == row.id).num_units = row.num_units;
            });
        db.SubmitChanges();
        Fill();
    }

Это первый раз, когда я действительно хотел, чтобы несколько обновлений происходили в виде одного пакета (все илиничего) - и я просто не уверен, что результат SubmitChanges () будет таким.

Если ответ «нет», то как это можно сделать в транзакции?

1 Ответ

2 голосов
/ 26 июля 2011

Вызов SubmitChanges () создаст новую транзакцию, если она еще не существует, поэтому да, эти изменения будут атомарными.

Обычно вы находитесь в третьем случае, как описано в следующих документах:

http://msdn.microsoft.com/en-us/library/bb386995(v=vs.90).aspx

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...