实体框架核心更新表

时间:2018-08-16 09:03:43

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

我已经在EF Core中映射了现有数据库,并获得了与表关联的模型类。

例如:Employee

 public int EmployeeId { get; set; }
 public string FirstName { get; set; }
 public string LastName { get; set; }

 public ICollection<EmployeeTeams> EmployeeTeams { get; set; }// all the teams employee is in

Teams类:

 public int TeamId { get; set; }
 public string TeamName { get; set; }
 public int? TeamLeaderId { get; set; }

 public Employees TeamLeader { get; set; }
 public ICollection<EmployeeTeams> EmployeeTeams { get; set; }

EmployeeTeams类:

 public int EmployeeId { get; set; }
 public int TeamId { get; set; }
 public Employees Employee { get; set; }
 public Teams Team { get; set; }

我的问题是:当我添加到EmployeeTeams表(它具有到EmployeeTeamsEmployee表的外键时,Teams会自动更新吗?

1 个答案:

答案 0 :(得分:1)

EF中没有自动更新。当您决定更新实体时,您将更新实体,除此之外将不会进行其他任何更新。如果这样做的话,这将是一个主要的安全性和性能问题,因为您不想更新的某些数据也可能会进入数据库,并可能导致大量不必要的数据和对零件的访问不意味着。

如果要在更新后查看反映在实体上的更改,请使用Entity Framework的Refresh方法。

如果您想做到最好,请处置您的实体并创建一个新实体

如果您不想篡改上下文,则下次您从数据库中读取数据时,它将加载新数据。

但是这里的关键词是加载,而不是自动更新,这是两个不同的术语。

原因是您必须为Entity Framework中的每个CUD操作显式调用context.SaveChanges()