Я согласен с ответом lauxjpn. Добавляю два цента за объяснение, почему это так.
Метод 'HasData' плохо работает с сущностями, когда между ними определены отношения. Обратите внимание, что 'HasData' принимает параметры, эквивалентные столбцам, созданным в таблице.
Таким образом, согласно рассматриваемому дизайну объекта, таблица, созданная для объекта MyEntity
, не будет содержать StateChange
данные отношения сущности. Фактически, у объекта StateChange
будет столбец MyEntityId
для ссылки на идентификатор объекта Entity
в форме внешнего ключа.
Чтобы добавить начальные данные, вы должны вызвать 'HasData' для обеих сущностей с использованием анонимного типа (используется, если свойства сущности и столбцы таблицы не совпадают) на основе сгенерированных столбцов таблицы.
modelBuilder.Entity<MyEntity>().HasData(
new
{
Id = 1,
OrderId = 2,
});
modelBuilder.Entity<StateChange>().HasData(
new
{
MyEntityId = 1,
//Fill in remaining properties of State Change
});
Дополнительная информация о данных заполнение с использованием 'HasData' можно найти на веб-сайте microsoft docs.
заполнение данных