LINQ to SQL Автоматическая вставка копирования строк при обновлении - PullRequest
0 голосов
/ 10 апреля 2009

Я использую этот простой код, чтобы попытаться обновить строку

    var MyDB = new SKN2DataContext();
    var s_case = MyDB.SupportCases.FirstOrDefault(sc => sc.Id == 3);
    s_case.OpenDate = DateTime.Now;
    MyDB.SubmitChanges();

В последней строке мне представлено следующее исключение

Значение элемента 'Id' объекта тип 'SupportCase' изменен. Член определение личности объекта не может быть изменено Рассмотрите возможность добавления новый объект с новой идентичностью и удалив существующий вместо этого.

Когда я вижу, что происходит, вызывая GetChangeList в QuickWatch, он говорит, что DataContext пытается сделать и обновить (что я ожидаю), а также вставку той же строки (ПОЧЕМУ ???) Я не могу понять, почему DataContext пытается сделать вставку.

РЕДАКТИРОВАТЬ Просто для записи OpenDate не входит в первичный ключ.

Ответы [ 2 ]

0 голосов
/ 12 апреля 2009
  • Изолируйте код, который вы используете, чтобы убедиться, что больше ничего не вызывает его (например, общий контекст)
  • Повторно добавьте таблицу в конструкторе linq2sql.
0 голосов
/ 10 апреля 2009

Является ли OpenDate частью первичного ключа? Я бы посмотрел там первым.

Является ли s_case не null?

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