如何将 EF 代码第一多重性从 1 更改为零/1

本文关键字:多重性 EF 代码 | 更新日期: 2023-09-27 17:56:54

想象一下我有两个实体:

 public class User{
    public Guid UserId { get; set; }
}
public class Country{
    public Guid CountryId {get; set;}
    public virtual List<User> Users {get; set;}
}

如果我尝试添加不属于任何国家/地区的用户,我会在 SaveChanges 命令上得到一个UpdateException

"

SLContext.User"中的实体参与"Country_Users" 关系。找到 0 个相关的"Country_Users_Source"。1 预计为"Country_Users_Source"

我相信这个问题与自动生成的一对多关系有关。如何将此多重性设置为 0.1 ---> * ?

如何将 EF 代码第一多重性从 1 更改为零/1

如果您使用的是 FluentAPI,则User实体的配置应为:

   HasOptional(x=> x.Country)
       .WithMany(x=> x.Users);

和您的用户实体:

   public class User{
        public Guid UserId { get; set; }
        public virtual Country Country { get; set; }
   }

希望这有帮助。