Asp.Net核心结构图IoC实体框架

时间:2018-02-21 20:43:13

标签: entity-framework structuremap

我已经在这几个小时了。我有一个现有的代码库,工作得很好。 转移到Asp.Net Core和最新的Structuremap,现在我遇到了DbContext的问题。

我收到此错误

  

指定的LINQ表达式包含对与不同上下文关联的查询的引用

好像SM没有为每个请求创建一个DbContext。但我无法弄明白为什么?

以下是存储库中的代码段。

    private readonly EntityContext _context;
    protected readonly DbSet<T> _dbSet;

    public Repository(EntityContext context)
    {
        _context = context;

        _dbSet = _context.Set<T>();
    }  

以下是我尝试使用SM注册上下文的多种方式。

    public StructureMapRegistry()
    {                                        
        var unique = new UniquePerRequestLifecycle();
        For<DbContext>().LifecycleIs(unique).ContainerScoped().Use<EntityContext>().ContainerScoped();
        For<EntityContext>().LifecycleIs(unique).ContainerScoped().Use<EntityContext>().ContainerScoped();

        //ForConcreteType<EntityContext>().Configure.Transient();

        //For<DbContext>().ContainerScoped().Use<EntityContext>();

       // For<EntityContext>().Use(() => new EntityContext());

        For<IUnitOfWork>().ContainerScoped().Use<UnitOfWork>();
        For(typeof(IRepository<>)).Use(typeof(Repository<>));
    }

0 个答案:

没有答案