是否可以使用 EF 核心修改外键的现有值?
Is it possible to modify existing value of foreign key with EF core?
我有两个具有一对一关系的实体:
public class User
{
[Key]
public int Id { get; set; }
[Required]
public string FirstName { get; set; }
[Required]
public string LastName { get; set; }
public string CarId { get; set; }
public Car Car{ get; set; }
}
和
public class Car
{
[Key]
public int Id { get; set; }
[Required]
public string PlateNumber{ get; set; }
[Required]
public string Description { get; set; }
public int UserId { get; set; }
public User User { get; set; }
}
假设我有 ID 为 1 的用户,它与 ID 为 5 的汽车相关(我有 5 辆汽车已经插入到 table“汽车”中)。
是否可以使用 EF Core 修改用户与汽车 (1->5) 与另一辆汽车(例如 ID 为 2 的汽车并变为 1->2)的现有关系,如果可以,您能举个例子吗?
您的数据模式无效,将被编译。您不能在 Car class 中同时拥有 UserId 和 User 中的 CarId。所以你必须 select 一件事情。恕我直言,最好将 UserId 保留在 Car 中,但从 User 中删除 CarId。如果您使用 Net 5+,您可以在用户中保留一辆 Car 属性,否则您将不得不分配 List
public class User
{
[Key]
public int Id { get; set; }
.....
public virtual Car Car { get; set; }
//but it is much better
public virtual List<Car> Cars { get; set; }
}
public class Car
{
[Key]
public int Id { get; set; }
....
public int UserId { get; set; }
public virtual User User { get; set; }
}
我有两个具有一对一关系的实体:
public class User
{
[Key]
public int Id { get; set; }
[Required]
public string FirstName { get; set; }
[Required]
public string LastName { get; set; }
public string CarId { get; set; }
public Car Car{ get; set; }
}
和
public class Car
{
[Key]
public int Id { get; set; }
[Required]
public string PlateNumber{ get; set; }
[Required]
public string Description { get; set; }
public int UserId { get; set; }
public User User { get; set; }
}
假设我有 ID 为 1 的用户,它与 ID 为 5 的汽车相关(我有 5 辆汽车已经插入到 table“汽车”中)。 是否可以使用 EF Core 修改用户与汽车 (1->5) 与另一辆汽车(例如 ID 为 2 的汽车并变为 1->2)的现有关系,如果可以,您能举个例子吗?
您的数据模式无效,将被编译。您不能在 Car class 中同时拥有 UserId 和 User 中的 CarId。所以你必须 select 一件事情。恕我直言,最好将 UserId 保留在 Car 中,但从 User 中删除 CarId。如果您使用 Net 5+,您可以在用户中保留一辆 Car 属性,否则您将不得不分配 List
public class User
{
[Key]
public int Id { get; set; }
.....
public virtual Car Car { get; set; }
//but it is much better
public virtual List<Car> Cars { get; set; }
}
public class Car
{
[Key]
public int Id { get; set; }
....
public int UserId { get; set; }
public virtual User User { get; set; }
}