使用 entity framework 设置 1 对 1 的关系

setup relation for 1 to 1 with entity framework

我必须如何为 ContactId 设置模型构建器?

CountryCompanyAssignment 与联系人有关系。

当我删除 CountryCompanyAssignment 时,我不希望联系丢失。

当我创建 CountryCompanyAssignment 时,我还需要一个联系人来保存 CountryCompanyAssignment。

我需要设置 CountryCompanyAssignment 和 ContactId 之间的关系,因为当我删除 CountryCompanyAssignment 时,我收到一条错误消息,提示我应该为联系人添加外键以使其正常工作。

这是我试过的:

 modelBuilder.Entity<CountryCompanyAssignment>().HasRequired(e => e.Contact).WithRequiredDependent(e => e.);

 [Key]
        [Column(Order = 1)]
        public int Id { get; set; }

        [Key]
        [Column(Order = 1)]
        public string ContactId { get; set; }

        [Required]
        public string Test{ get; set; }

        [Required]
        public virtual Contact Contact { get; set; }

如果您使用 WithRequired,其中一个 PK 必须是 FK:

  • Contact.Id 如果 WihtRequiredPrincipal
  • Company.Id 如果 WithRequiredDependent

如果你想公开并选择你必须的fk:

modelBuilder.Entity<Company>().HasRequired(x => x.Contact). WithMany().HasForeignKey(y => y.ContactId);