在更新现有记录时更新数据而不修改CreatedBy和CreatedDate

时间:2019-01-22 09:17:51

标签: c# .net-core entity-framework-core dbcontext

正在更新数据库中已经存在的数据,该表具有诸如 CreatedBy,CreatedDate,ModifiedBy,ModifiedDate 的列。创建新行时会插入CreatedBy和CreatedDate,但是在更新时,我不需要更新CreatedBy和CreatedDate,而只需要修改ModifiedBy和ModifiedDate。

如下面的代码所示,它将把CreatedBy更新为null,将CreatedDate更新为01/01/0001,如下所示。

_Context.UserProfile.Update(userProfile);

我的模特就像

public class MyModelUserProfile
{
    public int Id { get; set; }
    public string Email { get; set; }
    public string Username { get; set; }
    public string FirstName { get; set; }
    public string CreatedBy { get; set; }
    public string ModifiedBy { get; set; }
}

有什么方法可以避免更新CreatedBy和CreatedDate列?我可以通过使用电子邮件ID来获取特定记录来做到这一点,但是我不想为此再次访问数据库。

1 个答案:

答案 0 :(得分:2)

您无需在模型中更改CreatedByCreatedDate属性。

您的情况在这里:

  1. 从数据库中读取您的实体
  2. 修改您打算更新的属性
  3. 请勿修改CreatedByCreatedDate
  4. 将模型更新为数据库

您的模型设计也不佳。 您需要将DateTime用于日期,将Int32用于数字。

请按以下方式更改您的模型:

public class MyModelUserProfile
{
    public int Id { get; set; }
    public string Email { get; set; }
    public string Username { get; set; }
    public string FirstName { get; set; }
    public int CreatedBy { get; set; }
    public int ModifiedBy { get; set; }
    public DateTime ModifiedDate { get; set; }
    public DateTime CreatedDate { get; set; }
}