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>


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM