首页 > 代码库 > Abp使用不同仓储连接多个数据库
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类型的,所以需要修改Artice的定义,我是直接继承Entity<Guid>
Abp使用不同仓储连接多个数据库
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。