Обновление Linq с явным оператором - PullRequest
0 голосов
/ 04 октября 2009

Я пытаюсь выполнить обновление с помощью linq с использованием явного приведения, и изменения не отправляются.

Вот код

Image update = db.Images.Where(i => i.ImageId == imageWithChanges.ImageId).SingleOrDefault();

update = (Image)imageWithChanges;

db.SubmitChanges();

У меня есть явный оператор в моем классе изображений. Кто-нибудь может помочь?

Спасибо

Ответы [ 2 ]

1 голос
/ 04 октября 2009

Линия

update = (Image)imageWithChanges;

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

Другой способ сделать это - прикрепить imageWithChanges к db.Images и сказать, что это модифицированный экземпляр:

db.Images.Attach((Image)imageWithChanges, true); // true means "it's modified"
db.SaveChanges();
0 голосов
/ 04 октября 2009

Вы говорите, что исправили, но не говорите, Как.

Для всех остальных, кто прочтет это, я согласен с Рубеном, вы должны прикрепить его. Ошибка, которую он дает вам, является действительной, вы должны либо обработать проверку параллелизма (с отметкой времени или номером версии), либо позволить последним победить (установив UpdateCheck в false для всех свойств вашей сущности).

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