EntityFrameworkCore обнуляет Fk при сохранении более одной записи - PullRequest
0 голосов
/ 12 марта 2019

У меня есть сущность Agenda с двумя fk: одна для сущности Pessoa, а другая для TipoAgendamento. Если я пытаюсь добавить уникальную строку, все правильно. Но когда я пытаюсь добавить более одной строки, первая становится нулевой в Pessoa и TipoAgendamento fk.

Сущности: Повестка дня https://github.com/ftathiago/Agenda/blob/master/DB1.LT.Domain/Model/Agenda.cs

public class Agenda : ModelBase
    {
        public Pessoa Responsavel { get; private set; }      
        public Titulo Titulo { get; private set; }
        public Descricao Descricao { get; private set; }
        public Periodo AgendadoPara { get; private set; }
        public TipoAgendamento TipoAgendamento { get; private set; }
        public URL LinkYouTube { get; private set; }
(more code
}

Сущность Песоа: https://github.com/ftathiago/Agenda/blob/master/DB1.LT.Domain/Model/Pessoa.cs

public class Pessoa : ModelBase
    {
        public Nome Nome { get; private set; }
        public Email Email { get; private set; }
        public Senha Senha { get; private set; }
    } 

Entity TipoAgendamento: https://github.com/ftathiago/Agenda/blob/master/DB1.LT.Domain/Model/TipoAgendamento.cs

public class TipoAgendamento: ModelBase
    {
        public TipoAgendamento(Descricao descricao)
        {
            Descricao = descricao;
        }
    }

Проблемный код: (в Бразилии мы используем дд / мм / гггг)

    var day = 5;

    for (int i = 0; i < 2; i++)
    {
        dia = 5 * (i + 1);
        var pessoa = PegarPessoa(context);
        var tipoAgendamento = PegarTipoAgendamento(context);
        var agenda = new Agenda(pessoa,
                                new Titulo("Agenda {0}/03".ToFormat(day)),
                                new Descricao("Teste {0}.03".ToFormat(day)),
                                new Periodo(DateTime.Parse("{0}/03/2019".ToFormat(day)), DateTime.Parse("{0}/03/2019".ToFormat(day))),
                                tipoAgendamento);
        context.Set<Agenda>().Add(agenda);
        context.SaveChanges();
    }

Результат:

Id                                      ResponsavelId                          TipoAgendamentoId
20091909-A44A-433D-9427-355DE01E4BA3    E1D90C45-16C6-4AD6-AB09-15836C37CBF8   F57570DD-D756-4629-B9B4-EED03C9D9CE9
79D46220-2CC6-48AD-9B4A-DB6B57DB3C52    NULL                                   NULL
...