zoukankan      html  css  js  c++  java
  • .NET Core + Abp踩坑和填坑记录(1)

    1. Net Core 的DI和Abp的DI并存

    Startup中 ConfigureServices返回值改为IServiceProvider

    在ConfigureServices最后调用return services.AddAbp<AppModule>();

    AppModule是一个自己实现的继承AbpModule的类,用于程序集注入和其他配置初始化。

    比如

    [DependsOn(
            typeof(DomainModule),
            typeof(InfrastructureModule),
            typeof(AbpAspNetCoreModule))]
        public class AppModule : AbpModule
        {
            private readonly IConfigurationRoot appConfiguration;
    
            public AppModule(IHostingEnvironment env)
            {
                appConfiguration = AppConfigurations.Get(env.ContentRootPath, env.EnvironmentName);
            }
    
            public override void PreInitialize()
            {
                Configuration.DefaultNameOrConnectionString = appConfiguration["Database:ConnectionString"]; // 注意此处,后面有用
                Configuration.UnitOfWork.Timeout = TimeSpan.FromSeconds(5);
            }
    
            public override void Initialize()
            {
                IocManager.RegisterAssemblyByConvention(Assembly.GetEntryAssembly());
            }
        }

    2. Abp.EntityFrameworkCore的问题

    .NET Core下使用的是EfCoreRepositoryBase类来作为Repository的基类

    使用DDD+Abp的时候发现Repository的Insert没有自动持久化到数据库,文档中是说会在UOW完成的时候自动调用持久化方法。

    EfCoreRepositoryBase的构造函数需要IDbContextProvider,其中有两个实现:SimpleDbContextProvider不支持UOW,UnitOfWorkDbContextProvider才支持UOW。

    IDbContextProvider需要提供DBContext来完成构造,DBContext又需要DBContextOption,

    所以要注册以下依赖:

    DBContextOption,DBContext,Repository,UnitOfWorkDBContextProvider。

    还有一点是UnitOfWorkDBContextProvider的调用链中会用到Configuration.DefaultNameOrConnectionString用于建立数据库连接,这个设置要在AbpModule实现中完成,也就是第1点中代码注释提到的位置,默认是"Default",所以要么把ConnectionString的键名改成Default,要么在AbpModule实现中修改Configuration.DefaultNameOrConnectionString

  • 相关阅读:
    node递归批量重命名指定文件夹下的文件
    nvm
    node在Web中的用途
    给flash续命(rtmp/http-flv网页播放器)
    AMR/PCM格式语音采集/编码/转码/解码/播放
    视频分析,目标跟踪应用方案梳理
    srs-librtmp pusher(push h264 raw)
    srs
    nginx-rtmp/http-flv
    Introduction to Sound Programming with ALSA
  • 原文地址:https://www.cnblogs.com/zonciu/p/6719957.html
Copyright © 2011-2022 走看看