Почему я не могу обновить данные в базе данных, используя LINQ to SQL? - PullRequest
1 голос
/ 16 августа 2011

Я пытаюсь обновить данные, пока я читаю их из базы данных, см. Ниже.Но после того, как все закончилось, данные не обновлялись (у моей таблицы есть первичный ключ).

    static LinqMPISMPPCalenderDataContext DBCalender;
    DBCalender = new LinqMPISMPPCalenderDataContext(connectionString);
    var ExceptionPeriod= DBCalender.Table_ExceptionPeriods
    .Where(table=>Table.StartDate<= Date && table.FinishDate >= Date && table.CalenderID==CalenderID).Single();

    Table_ExceptionPeriod TblException =null;
    TblException = ExceptionPeriod;
    TblException.StartDate = ExceptionPeriod.StartDate.AddDays(1);
    DBCalender.SubmitChanges();

Ответы [ 2 ]

0 голосов
/ 16 августа 2011

Кажется, что в коде нет ничего логически неправильного, так как Антоний говорит, что вы можете уменьшить количество строк.

Я бы, вероятно, шаг за шагом проходил код до строки отправкипроверьте, действительно ли изменилась StartDate.

Единственное, что я могу себе представить, что может пойти не так, это какой-то откат транзакции в базе данных или вы не просматриваете ту запись, которую считаете нужной.

0 голосов
/ 16 августа 2011

Как только вы получили свой объект из БД через ваш вызов .Single(), вы сможете просто установить свойства для него и вызвать SubmitChanges().Там нет необходимости для вещей TblException.Итак ...

static LinqMPISMPPCalenderDataContext DBCalender;
DBCalender = new LinqMPISMPPCalenderDataContext(connectionString);
var ExceptionPeriod = DBCalender.Table_ExceptionPeriods
    .Where(table=>Table.StartDate<= Date && table.FinishDate >= Date && table.CalenderID==CalenderID).Single();

ExceptionPeriod.StartDate = ExceptionPeriod.StartDate.AddDays(1);
DBCalender.SubmitChanges();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...