实体框架核心更新表



>我已经映射了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; }

我的问题是:当我添加到表EmployeeTeamsEmployeeTeams自动更新吗(它有外键EmployeeTeams表(?

EF中没有自动更新。当您决定更新实体时,您将更新该实体,除此之外不会进行进一步的更新。如果他们这样做,这将是一个主要的安全和性能问题,因为您不想更新的某些数据也可能进入您的数据库,并可能导致大量不必要的数据和访问不打算更新的部分。

如果要查看更新后反映在实体上的更改,请使用实体框架的刷新方法。

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

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

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

您必须为实体框架中的每个 CUD 操作显式调用context.SaveChanges(),这是有原因的。

最新更新