Настроить свойство автофиксации с ранее установленным свойством - PullRequest
0 голосов
/ 19 июня 2020

В EF (Entity Framework) распространенным шаблоном является наличие ссылки на дочернюю сущность и ключ, который таблица использует, сопоставленный как свойство родительской сущности.

При использовании автофиксации при имитации родительский объект Я хочу найти способ установить первичный ключ дочернего объекта с внешним ключом, который был установлен ранее

_fixture.Build<Parent>()
.With(x=>x.ChildId)
.With(x=>x.Child, 
    _fixture.Build<Child>()
        .With(child=>child.Key,parent => parent.ChildId) //This is not supported in AutoFixture
        .Create()
    )
.Create();

1 Ответ

0 голосов
/ 07 июля 2020

Не могли бы вы предоставить дополнительную информацию о том, что вы пытаетесь решить? Вы используете EF или EF Core? Решение может отличаться в зависимости от того, какое из них вы используете.

В последней версии Entity Framework, AFAIK, вы не получите ключ, пока не сохраните объект в базе данных. В этом случае вы можете использовать один из поставщиков баз данных Microsoft для модульного тестирования. В вашем случае, поскольку вы используете реляционные функции EF, вы можете захотеть использовать поставщика SQLite. После сохранения объекта внешний ключ и свойства навигации должны содержать все необходимые данные. https://docs.microsoft.com/en-us/ef/core/miscellaneous/testing/sqlite

Если вы хотите упростить взаимодействие между EF Core и AutoFixture, вы можете использовать пакет EntityFrameworkCore.AutoFixture .

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