zoukankan      html  css  js  c++  java
  • Abp使用不同仓储连接多个数据库

    有群友说官方例子中有,无奈英文和网速太差。。。自己琢磨吧。

    最近开发的项目中,需要从外部系统中读取一些信息,计算之后存入本地的数据库中,外部系统直接提供数据库给我。。所以本地需要用到多数据库连接。

    项目采用ABP框架开发,不熟悉的可以看看这里

    言归正传,我的项目中已经有了一个DbContext继承至 AbpZeroCommonDbContext,新建一个上下文,我项目中是使用DbFirst直接从数据库中生成的,然后继承至AbpDbContext,我就是这里忘了修改继承直接继承DbContext了结果整了半天。。。再到Repositories中添加该上下文的的仓储:

    public abstract class ArticleRepository< TEntity, TPrimaryKey> : EfRepositoryBase<SampleDbContext, TEntity, TPrimaryKey> 
    where TEntity : class ,IEntity<TPrimaryKey>
        {
        protected ArticleRepository(IDbContextProvider<SampleDbContext> dbContextProvider) : base(dbContextProvider)
            {
            }
        }

    该仓储和默认仓储不一样的是SampleDbContext是其他数据库的上下文。这样就可以了,在Application中可以直接定义IRepository,然后在方法中就可以直接调用了,示例如下:

    private readonly IRepository<Article, System.Guid> _articleRepository;
    
    public ArticlesAppService(IRepository<Article, Guid> articleRepository)
            {
                _articleRepository = articleRepository;
            }

     注意这里的IRepository<Article, Guid>,第一个参数是IEntity类型的,所以需要修改Article的定义,直接继承Entity<Guid>

  • 相关阅读:
    AppScan扫描教程
    iis发布网站可能遇到的问题及解决方法
    apache、nginx、iis日志记录的各个字段内容与含义
    nmap的使用教程
    ubuntu下编译wiringPi
    配置NAT
    华为OSPF与ACL综合应用实例讲解
    浮动静态路由及负载均衡
    静态路由及默认路由基本配置
    利用三层交换机实现VLAN间路由
  • 原文地址:https://www.cnblogs.com/dark-yx/p/5897504.html
Copyright © 2011-2022 走看看