Entity Framework. Core рассматривает внешний ключ как первичный ключ - PullRequest
0 голосов
/ 07 сентября 2018

У меня есть два класса, показанные ниже. При попытке вставить два HeroEntry с одинаковым IdentityId контекст сохраняет только одну из двух записей. Есть идеи, что я делаю не так?

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();

1 Ответ

0 голосов
/ 07 сентября 2018

Кристиан был прав. Добавление свойства навигации к классу удостоверений решило мою проблему. Спасибо за помощь!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...