问题是如果我没有在我的控制器中定义它们,表列将更新为NULL .Below是我的控制器操作。
[HttpPost]
public ActionResult GetEditRecord(UserDetail MU, string actiontype)
{
if (actiontype == "Save")
{
UserDetail Ud = new UserDetail();
_unitOfWork = new GenericUnitOfWork();
Ud.ID = MU.ID;
Ud.FirstName = MU.FirstName;
Ud.LastName = MU.LastName;
Ud.IsDeleted = false;
Ud.FkCompanyId = 5;
Ud.FkRegionId = 1;
_unitOfWork.GetRepoInstance<UserDetail>().update(Ud);
_unitOfWork.SaveChanges();
}
return RedirectToAction("ManageUsers"); ;
}
我在UserDetails中有10列,但我只需要编辑6列,但是当我点击更新时,其他字段将保存为NULL。下面是更新实体的My GeneralRepository代码
public void update(TEntity entity)
{
_dbContext.Entry(entity).State = EntityState.Modified;
}
请告诉我是否遗漏了某些东西。
答案 0 :(得分:1)
嗯,这是合理的,你基本上是在创建新记录,你的默认值是NULL。
您可能希望首先找到您的记录(FindById或其他内容)然后更新它。
无关:不应该是一次性工作单位吗?