Я делал это много раз, и он сработал.Обновление записи с использованием Linq-to-SQL
Каждый пример, я нашел именно то, что у меня есть ..
Я делаю запрос ...
var result = from u in tdc.tblUsers
where u.UserID == userID
select u;
, а затем меняю значения Я хочу:
foreach (tblUsers u in result)
{
//change values (and no im not changing the primary key or foreign keys)
}
я представить изменения
tdc.SubmitChanges();
Я также попробовал этот путь раньше и получил ту же ошибку
tblUsers result = (from u in tdc.tblUsers
where u.UserID == userID
select u).Single();
result.Address = address;
result.Phone = phone;
tdc.SubmitChanges();
Это только когда-либо получить 1 запись с этим запросом, поскольку UserID
является первичным ключом.
Когда он попадает в подчиненные изменения, он выдает исключение, что строка не найдена или не была изменена. Я единственный человек, использующий это, поэтому нет никаких других конфликтов с доступом к db или блокировке. Зачем ему бросать ChangeConflictException
? Я прошел через отладчик, и данные все время сохраняются в процессе, включая изменения, которые я пытаюсь сделать.
Вы используете платформу Entity Framework (и если да, то какая версия)? – gunr2171
Кроме того, ВСЕ ВСЕ ваши таблицы имеют первичные ключи. Сюда входит редактируемая вами и любые ветвящиеся таблицы из внешних ключей. – gunr2171
.NET Framework 4 и да, все таблицы имеют первичные ключи и правильные внешние ключи. Этот запрос выполняется только после 1 таблицы, и в этой таблице нет внешних ключей. Это одна из моих базовых таблиц. –