Обновление сущности с помощью LINQ TO SQL - PullRequest
2 голосов
/ 18 января 2010

Я пытаюсь обновить запись в БД, используя linq для sql

Сначала я запросил его

MyObject obj = (from o in objRepository.List where(o.ID == id) select i).SingleOrDefault();

тогда я пытаюсь обновить и изменить данные

obj.Name = "some value"

dataContext.Attach(obj)
dataContext.Context.Refresh(RefreshMode.KeepCurrentValues, obj);

Я получаю InvalidOperationException на линии, к которой прикреплено содержимое. Он говорит, что невозможно присоединить сущность, которая уже существует.

Может кто-нибудь помочь мне? Спасибо.

1 Ответ

1 голос
/ 18 января 2010

Любой объект, обновленный с помощью LINQ to SQL, автоматически известен, поэтому, если вы получаете объект из хранилища и он знает о контексте данных, вам не нужно его присоединять. Вы можете просто представитьchanches () с контекстом данных, и эти изменения будут обновлены в базе данных.

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

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