Так что я застрял с этой проблемой в течение достаточно долгого времени.Мы реализуем архитектуру 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 неинстантиатор или решатель, но это то, чего я хочу достичь.
Любые указатели и дайте мне знать, если мой вопрос не имеет смысла.