Entity Framework 7 В тесте памяти с перехватчикомC#

Место общения программистов C#
Гость
Entity Framework 7 В тесте памяти с перехватчиком

Сообщение Гость »


Я решил попробовать новые перехватчики, входящие в состав Entity Framework 7.
Поэтому я добавил метод OnConfiguring в DbContext.

Код: Выделить всё

protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder)
{
base.OnConfiguring(optionsBuilder);
optionsBuilder.AddInterceptors(new MaterializationInterceptor());
}
К сожалению, я получаю сообщение об ошибке в тесте, использующем базу данных памяти.

Был сделан вызов ' AddInterceptors», но Entity Framework не создает собственного внутреннего поставщика услуг. Либо разрешите Entity Framework создать поставщика услуг, удалив вызов UseInternalServiceProvider, либо создайте службы ISingletonInterceptor для использования в поставщике услуг перед передачей их в UseInternalServiceProvider.

Вот как я пытаюсь зарегистрировать dbContext в своем тесте

Код: Выделить всё

public void Register(IServiceCollection services)
{
var serviceProvider = new ServiceCollection()
.AddEntityFrameworkInMemoryDatabase()
.AddSingleton()
.BuildServiceProvider();

services.AddDbContext(options =>
{
options.UseInMemoryDatabase(_inMemoryDbIdentifier.DatabaseName, _inMemoryDbIdentifier.InMemoryDatabaseRoot);
options.UseInternalServiceProvider(serviceProvider);
});
}
I don't know how else I could build the ISingletonInterceptor services.
Thank you for any answers


Источник: https://stackoverflow.com/questions/781 ... nterceptor

Вернуться в «C#»