У меня возникает проблема, вызывающая раздражение, когда один столбец paticular в моей сущности не будет сохранять/обновлять. Я пробовал множество методов обновления строки, например, присвоение каждого свойства, которое я хочу обновить вручную, туда, где я сейчас (см. Блок кода ниже). 2 столбца обновляют и сохраняют как ожидалось (absent_type_id и point_value), однако независимо от того, что я делаю, столбец «описание» просто не будет сохранен.MVC4 Entity Framework один столбец paticular, не обновляющийся
Я проверил отладчик, чтобы узнать, что это значение перед db.SaveChanges(); и подтвердил, что он настроен на новое значение; однако выбор строки после сохранения (и проверка базы данных) показывает, что другие значения обновляются, но описание возвращается к тому, что было ... почему это может быть?
[HttpPost]
public JsonResult UpdateOccurrence(int occ_id,
string absent_type,
string description,
int point_value)
{
try
{
// Get id for the absent type
int absent_type_id = db.AT_absent_types.Single(a => a.absent_type == absent_type).absent_type_id;
var occurrenceToUpdate = new AT_occurrences
{
occ_id = occ_id,
absent_type_id = absent_type_id,
description = description,
point_value = point_value
};
db.AT_occurrences.Attach(occurrenceToUpdate);
db.SaveChanges();
//return call omitted
}
catch (Exception ex)
{
return Json(new {Result = "ERROR", Message = ex.Message});
}
}
Как я уже говорил - проводка point_value и absent_type сохранить и обновить объект идеально, описание просто не будет сохранять! Понятия не имею почему. Любая помощь или понимание были бы очень оценены - это сводит меня с ума! Ура!
Спасибо за разрешение SashaArz. Я добавил строки, как вы предложили. Однако он ничего не сделал. Если я отправляю методу новый тип, описание и значение точки - тип и значение точки обновляются как в таблице, но в описании нет. как это может быть! –
Было ли поле описания добавлено в таблицу позже или переименовано? – SashaArz
Возможно, он был добавлен в таблицу после ее создания. Может ли это вызвать проблему? Таблица имеет столбец описания как «varchar (800)», и сущность имеет «публичное описание строки {get; set;}» ... поэтому EF знает, что это есть. –