Свойства Autofac, автоматически подключенные к Entity Framework 6 - PullRequest
0 голосов
/ 20 сентября 2019

Так что я застрял с этой проблемой в течение достаточно долгого времени.Мы реализуем архитектуру DDD, и я не хочу, чтобы наши модели или объекты были анемичными.

Мы также используем EF6 и Autofac.Я не хочу реализовывать шаблон репозитория, поскольку EF уже действует как этот шаблон.

Так, например, у нас есть контекст с именем TestContext

public class TestContext : DbContext
    {
        public TestContext() : base("TestContext")
        {
        }
        public DbSet<AEntity> AEntities { get; set; }
    }

Единственный набор данных, который он имеет, - это AEntity.

public class AEntity
    {
        public ITest testService;
        public Guid Id { get; set; }
        public string Name { get; private set; }
        public AEntity()
        {

        }

        public AEntity(string name)
        {
            this.Name = name;
        }

        public virtual void Test()
        {
            // Logic.

            // Global testLogic for names
            testService.Test(this.Name);
        }
    }

Таким образом, я настроил автозаполнение для автоматического ввода свойства

builder.RegisterType<AEntity>().PropertiesAutowired();

, и это работает, если autofac отвечает за создание экземпляра экземпляра, как показано в следующем методе:

public ValuesController(AEntity aEntity)
        {
            aEntity.Test();
        }

Отлично, это работает, и все, но здесь возникает загвоздка, когда я делаю что-то подобное

public ValuesController(TestContext context)
        {
            var a = context.AEntities.FirstOrDefault();
            a.Do();
        }

ITest не подключается автоматически, и я знаю, что из-за того, что autofac неинстантиатор или решатель, но это то, чего я хочу достичь.

Любые указатели и дайте мне знать, если мой вопрос не имеет смысла.

...