Странная вещь происходит с EntityFramework. Когда я отлаживаю db.SaveChanges, я вижу, что есть правильные данные, которые будут отправлены в базу данных. Если для поля CurrentFirstName, равного bool, установлено значение true, сохранение выполняется правильно, а данные попадают в базу данных. Если для CurrentFirstName установлено значение false, ничего не происходит, и данные не попадают в базу данных.EntityFramework db.SaveChanges() работает только в том случае, когда Bool True
Объект и хранимые процедуры отображаются правильно. Объект имеет уникальный первичный ключ.
Возможно ли, что как-то «ложь» не правильно переводится на «0» для вставки хранимой процедуры? Любые предложения приветствуются. Спасибо.
public int PK_FirstNameID { get; set; }
public string FirstName { get; set; }
public bool CurrentFirstName { get; set; }
public int fk_DemographicsID { get; set; }
[HttpPost]
public PartialViewResult SaveFirstName(DemographicsViewModel model)
{
if (ModelState.IsValid)
{
try
{
int fkid = model.fk_DemographicsID;
int pkid = model.PK_FirstNameID;
v_FirstNames fn = new v_FirstNames();
fn.fk_DemographicsID = model.fk_DemographicsID;
fn.CurrentFirstName = model.CurrentFirstName;
fn.FirstName = model.FirstName.ToUpper();
if (pkid > 0)
{
fn.PK_FirstNameID = model.PK_FirstNameID;
unitOfWork.DemographicsFirstNamesRepository.Update(fn);
}
else
{
unitOfWork.DemographicsFirstNamesRepository.Insert(fn);
}
unitOfWork.Save();
var vm = GetDemographicsViewModel(fkid);
UpdateDocumentToDemographicsIndex(fn.fk_DemographicsID);
if (fn.CurrentFirstName == true)
{
UpdateDocumentToAccessionIndex(fn.fk_DemographicsID);
}
return PartialView("_FirstNamesDetail", vm);
}
catch (DataException ex)
{
//Log the error (add a variable name after DataException)
}
}
else
{
// error handling
}
}
EF не будет отправлен запрос к базе данных, если ничего не изменилось с момента последнего сохранения – reggaeguitar
Ну, со вставкой, все изменилось, правильно? Он должен видеть данные как измененные. Фактически, для вставки с CurrentFirstName установлено значение true. Ошибка при вставке с CurrentFirstName установлена равной false. Я что-то упускаю? – lv2rftak
EF кэширует данные, поэтому если вы что-то измените, а затем измените его, не сохраняя в db, он не отправит запрос – reggaeguitar