【问题标题】:Entity Framework .Core treating foreign key as a primary keyEntity Framework .Core 将外键视为主键
【发布时间】:2018-09-08 04:03:53
【问题描述】:

我有如下所示的两个类。当尝试插入两个具有相同IdentityIdHeroEntry 时,上下文仅保存两个条目之一。任何想法我做错了什么?

public class Identity
{
    [Key]
    [DatabaseGenerated(DatabaseGeneratedOption.Identity)]
    public int IdentityId { get; set; }
    public string FirstName { get; set; }
    public string LastName { get; set; }
    public string Email { get; set; }
    public string Phone { get; set; }
    [JsonIgnore]
    public virtual HeroEntry HeroEntry { get; set; }
}

public class HeroEntry
{
    [Key]
    [DatabaseGenerated(DatabaseGeneratedOption.Identity)]
    public int HeroEntryId { get; set; }
    public int IdentityId { get; set; }
    public SuperHeroEnum HeroType { get; set; }
    public DateTime Startdate { get; set; }
    public DateTime EndDate { get; set; }

    [ForeignKey("IdentityId")]
    public virtual Identity Identity { get; set; }
    public virtual List<SuperHeroBreak> SuperHeroBreaks { get; set; }
}

添加代码:

var b = new HeroEntry()
            {
                HeroType = SuperHeroEnum.BATMAN,
                Startdate = DateTime.Parse("12/24/2018"),
                EndDate = DateTime.Parse("01/04/2019"),
                IdentityId = 1,
            };

var r = new HeroEntry()
            {
                HeroType = SuperHeroEnum.ROBIN,
                Startdate = DateTime.Parse("12/24/2018"),
                EndDate = DateTime.Parse("01/04/2019"),
                IdentityId = 1,
            };

context.SuperHeroes.AddRange(b, r);

var affected = context.SaveChanges();

【问题讨论】:

  • 你能发布添加代码吗?
  • 抱歉,已添加。我预计受影响会返回 2,但它会返回 1。
  • 单次插入添加记录会怎样?
  • 您在表之间定义了one-to-one 关系。验证是否为 IdentityId 属性定义了约束。
  • Cristian Szpisjak 是对的......你应该在身份对象(导航属性)中拥有一个 HeroEntry 的集合

标签: entity-framework-core


【解决方案1】:

克里斯蒂安是对的。将导航属性添加到身份类解决了我的问题。感谢您的帮助!

【讨论】:

    猜你喜欢
    • 2013-03-06
    • 2022-09-22
    • 1970-01-01
    • 1970-01-01
    • 2022-09-27
    • 2018-09-28
    • 2016-12-16
    • 1970-01-01
    • 2018-05-03
    相关资源
    最近更新 更多