我有以下用户模型:
Model Users.cs
[Key]
[Column("cod")]
public int Cod { get; set; }
[Column("nome")]
[StringLength(120)]
public string Nome { get; set; }
[Column("sobrenome")]
[StringLength(80)]
public string Sobrenome { get; set; }
[Column("email")]
[StringLength(60)]
public string Email { get; set; }
[Column("password")]
[StringLength(20)]
public string Password { get; set; }
我的ViewModel只有View中显示的数据 UsersViewModel.cs
public int Cod { get; set; }
public string Nome { get; set; }
public string Sobrenome { get; set; }
我的通用存储库如下所示:
public void Update(TEntity obj)
{
Db.Entry(obj).State = EntityState.Modified;
Db.SaveChanges();
}
在我的控制器中它看起来像这样:
[HttpPost]
public IActionResult SalvaPerfil([FromBody] UsersViewModel usersViewModel)
{
if (ModelState.IsValid)
{
var user = Mapper.Map<UsersViewModel, Users>(usersViewModel);
_PetApp.Update(user);
return Content("fim...");
}
return Content("ERRO");
}
问题是电子邮件和密码字段在数据库中写为NULL,我不想在另一个视图中更改电子邮件和密码值。
我看到了这篇文章,但它不是Generic Repository,我无法实现它。
How to update only one field using Entity Framework?
在这种情况下,我是否需要为此更改创建自定义方法?或者有没有办法只更改ViewModel中的字段?
谢谢!