Я использую интерфейс IEntityTypeConfiguration для настройки сущностей. Так, например, у меня есть 2 таблицы с именами: Студенты / Курсы.
Есть конфигурация таблиц:
Курсы :
builder.HasMany(x => x.Students).WithOne().HasForeignKey(x => x.CourseId);
Студенты :
builder.HasOne(x => x.Course).WithMany().HasForeignKey(x => x.CourseId);
Следующим шагом является создание теста для проверки правильности загрузки данных. У меня есть репозиторий, который преобразует объект в модель, но сначала я хочу протестировать его вручную с помощью моего контекста.
Я создал курс и список студентов, есть студенты (EntityManager добавляет поддельные данные в Context и сохраните его), на самом деле по умолчанию создается 100 сущностей:
var students = await EntityManager.CreateManyAsync<Student>(
x => x.CourseId = course.Id);
Затем я просто ищу курс, включаю студентов и тестирую его через FluentAssertions.
var set = TestDatabase.Context.Set<Course>();
var course = await set.Include(x => x.Students).FirstAsync(x => x.Id == course.Id);
course.Students.Should().NotBeEmpty();
Сущность здесь , но коллекция пуста (но не равна нулю, поскольку я ее не инициализировал).
Для модульных тестов я использую фактический Context и InMemoryDatabase.
Коллекция Entity:
public virtual ICollection<Student> Students { get; set; }
Что не так?
PS Ошибок в EntityManager нет, идентификаторы отношений установлены правильно.