【问题标题】:Override PhoneNumber IdentityUser as ForeignKey .Net Core Web Api将 PhoneNumber IdentityUser 覆盖为 ForeignKey .Net Core Web Api
【发布时间】:2021-01-23 08:20:22
【问题描述】:

PhoneNumberContext 中的独立实体,我需要将其作为外键分配给 IdentityUser 我曾将Guid 用作主键,但是当我将其定义为外键时,我发现它们已经是IdentityUser 类中称为PhoneNumber 的字段,然后我将其更改为string 以覆盖实际的PhoneNumber 字段并且我想将其分配给 PhoneNumber 实体并将该字段用作 ForeignKey 然后我将 ForeignKey Atrribute 设置为 phoneNumber 然后遇到此错误

实体类型“用户”中属性“电话号码”和导航“电话号码”的 ForeignKeyAttributes 不指向对方。属性的 ForeignKeyAttribute 的值应该是导航名称,导航的 ForeignKeyAttribute 的值应该是外键属性名称。

这里是PhoneNumber Entity

     public partial class PhoneNo
    {
        public PhoneNo()
        {
            User = new HashSet<User>();
        }

        [Key]
        public string Id { get; set; }
       
        public string Prifix { get; set; }
        [Required]
        public string LineNo { get; set; }


        public ICollection<User>User{ get; set; }
        

    }

UserEntity

public class User:IdentityUser
   {
       
       public string FirstName { get; set; }
       public string  MiddleName { get; set; }
       public string LastName { get; set; }
       public string ProfilePict { get; set; }

       [ForeignKey("phoneNumber")]
       public override string PhoneNumber { get; set; }

       [ForeignKey("Identities")]
       public Guid IdentityId { get; set; }
       public Identities Identities { get; set; }
       public PhoneNo phoneNumber { get; set; }

   }

我尝试删除 ForeignKeyAttribute 但它创建了另一个名为 PhoneNumberId 的字段以及 Userclass 中的原始字段

【问题讨论】:

    标签: rest .net-core entity-framework-core


    【解决方案1】:

    phoneNumber 导航更改为phoneNo,它的工作..

    新的phoneNumberNavigation

    public PhoneNo phoneNo { get; set; }
    

    分配ForeignKey 属性

      [ForeignKey("phoneNo")]
        public override string PhoneNumber { get; set; }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2018-01-15
      • 1970-01-01
      • 2021-12-11
      • 1970-01-01
      • 2018-05-08
      • 2017-08-12
      • 2020-05-05
      相关资源
      最近更新 更多