Изменения в свойствах nullable bool не сохраняются обратно в db в EF4, однако другие поля, которые являются обнуляемыми, обновляются без каких-либо проблем. Например, если я выполнить простой запрос, подобный следующему:Обновление обнуляемых булевых полей в Entity Framework
EmployeeSurvey employeeSurvey = context.EmployeeSurveys.SingleOrDefault(s => s.EmployeeSurveyID == 60);
employeeSurvey.EmployeeSmokes = true;
employeeSurvey.OtherComments = "Test comment";
context.SaveChanges();
В OtherComments изменения успешно сохранены обратно в БД однако изменения свойств EmployeeSmokes не являются. Свойством EmployeeSmokes является bool? и другие нулевые логические поля имеют одинаковую проблему.
Кроме того, проблема возникает только при изменении/обновлении существующих записей EmployeeSurvery - все свойства, включая EmployeeSmokes, успешно сохраняются при создании/вставке новых EmployeeSurveys.
Я также пробовал использовать метод ApplyCurrentValues в соответствии с this thread, но, к сожалению, он не помог.
Любые идеи, почему это происходит?
Ваш код верный. Проблема в другом месте (не в вашем вопросе). Это работает для меня. Вам нужно отладить это больше. Попробуйте выполнить трассировку SQL. –
У меня такая же проблема, как и у вас, но для нулевых целых чисел. Из того, что мне удалось проверить, когда вы добавляете объект в базу данных, а поле имеет значение ** null **, после этого вы не сможете обновить его с помощью EF ... Поэтому я полагаю, что это какая-то ошибка. Я продолжу поиск, и я отправлю ответ, если найду что-нибудь. –