EntityFramework发生了奇怪的事情。当我调试db.SaveChanges时,我可以看到正确的数据即将被发送到数据库。当CurrentFirstName字段(bool)设置为true时,保存正确执行,数据最终在数据库中。当CurrentFirstName设置为false时,没有任何反应,也没有数据到达数据库。
正确映射实体和存储过程。该实体具有唯一的主键。
对于插入存储过程,是否有可能以某种方式将“false”正确转换为“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
}
}
答案 0 :(得分:0)
您是否已将记录标记为已修改?
newContext.Entry(sqlEntry).State = EntityState.Modified;