Подтвердить что ты не робот

LINQ не обновляется .SubmitChanges()

Есть ли причина, по которой что-то подобное не работает?

Это логика, которую я использовал много раз для обновления записи в таблице с помощью LINQ:

 DataClasses1DataContext db = new DataClasses1DataContext();
 User updateUser = db.Users.Single(e => e.user == user);
 updateUser.InUse = !updateUser.InUse;
 db.Log = new System.IO.StreamWriter(@"c:\temp\linq.log") { AutoFlush = true };
 db.SubmitChanges();

(updateUser.InUse - поле бит)

По какой-то причине он не работает. Когда я проверяю linq.log, он полностью пуст.

Может ли быть проблема с моим .dbml? Другие таблицы работают нормально, но я сравнил свойства в .dbml и все они совпадают.

Это как будто db.SubmitChanges(); не обнаруживает требуемых обновлений.

4b9b3361

Ответ 1

Таблица не может быть обновлена ​​должным образом, поскольку у нее не было первичного ключа. (На самом деле это столбец, но ограничение не было скопировано, когда я сделал SELECT INTO в моей таблице dev). Для класса DataContext требуется первичный ключ для обновлений.

Ответ 2

Является ли свойство InUse "нормальным" для LINQ? (например, он не автогенерирован или не напуган?)

В качестве альтернативы, я не думаю, что это Nullable <bool> , с текущим значением null? Если это так, ваша строка обновления фактически ничего не делает - для nullable Booleans,! Null = null.