c# - Autofac 属性在 Entity Framework 6 上自动装配
问题描述
所以我已经被这个问题困扰了很长一段时间。我们正在实施 DDD 架构,我不希望我们的模型或实体出现问题。
我们也在使用 EF6 和 Autofac。我不想实现存储库模式,因为 EF 已经充当了这种模式。
例如,假设我们有一个名为 TestContext 的上下文
public class TestContext : DbContext
{
public TestContext() : base("TestContext")
{
}
public DbSet<AEntity> AEntities { get; set; }
}
它拥有的一个 DBset 是 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);
}
}
所以我将 autoface 配置为自动装配属性注入
builder.RegisterType<AEntity>().PropertiesAutowired();
如果 autofac 负责实例化实例,这很有效,如下面的方法所示:
public ValuesController(AEntity aEntity)
{
aEntity.Test();
}
太好了,一切正常,但是当我做这样的事情时,问题就来了
public ValuesController(TestContext context)
{
var a = context.AEntities.FirstOrDefault();
a.Do();
}
没有自动装配,我知道这ITest
是因为 autofac 不是实例化器或解析器,但这是我想要完成的事情。
任何指针,如果我的问题没有意义,请告诉我。
解决方案
推荐阅读
- git - Git 使用远程分支更新本地文件
- angular - 如何在 Angular 中测试图像事件
- cassandra - 查找 SSTables 的分区键
- c++ - 仔细检查锁定问题,C++
- javascript - 如何确定某个字符串是否在列表中
- node.js - Multer: upload different file types in different folders
- python - pandas:有条件地聚合连续行
- java - Spring Boot 中重定向 URL 的白名单
- html - Emmet 缩写从现有的 url
- c++ - 是否可以选择不自动将所有前导下划线 _ 导出为 emscripten 中的函数?