ASP.NET Core DI с общим доступом к DbContext с помощью Simple InjectorC#

Место общения программистов C#
Ответить Пред. темаСлед. тема
Anonymous
 ASP.NET Core DI с общим доступом к DbContext с помощью Simple Injector

Сообщение Anonymous »

Я настраиваю проект ASP.NET Core и следую шаблону CQRS, основываясь на своей работе над проектом Tripod. Я следовал руководству по интеграции Simple Injector, но один момент немного озадачен... Я хочу продолжать использовать опцию UseInMemoryDatabase для тестирования и могу найти примеры этого только с помощью Core DI AddDbContext метод.

Мой DbContext реализует несколько интерфейсов:

public class EntityDbContext : DbContext,
IUnitOfWork,
IReadEntities,
IWriteEntities
{
// code here
}


Я делаю это в методе Startup.ConfigureServices:

services.AddDbContext(options => options.UseInMemoryDatabase("Snoogans"));


и следуя инструкциям по интеграции SI, проведите это в методе Startup.Configure:

container.Register();
container.Register();
container.Register();


Смогу ли я получить регистрацию ядра через перекрестное соединение для подключения к цели для каждого из них или мне следует просто зарегистрировать контекст непосредственно в SI?

==
Я экспериментирую с оригинальной концепцией от Tripod:

var contextRegistration =
lifestyle.CreateRegistration(container);
container.AddRegistration(typeof(EntityDbContext), contextRegistration);
container.AddRegistration(typeof(IUnitOfWork), contextRegistration);
container.AddRegistration(typeof(IWriteEntities), contextRegistration);
container.AddRegistration(typeof(IReadEntities), contextRegistration);


пытаюсь сделать все с помощью SI, но не знаю, как мне получить регистрацию для трех интерфейсов:

container.Register(() =>
{
var optionsBuilder =
new DbContextOptionsBuilder().UseInMemoryDatabase("Snoogans");
return new EntityDbContext(optionsBuilder.Options);
});
container.AddRegistration(xxxx);
container.AddRegistration(xxxx);
container.AddRegistration(xxxx);


Подробнее здесь: https://stackoverflow.com/questions/552 ... -dbcontext
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

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