Abp连接多个数据源
分类专栏: web c# .net ABP 文章标签: c# 数据库 .net
版权
在使用ABP时会遇到新数据和旧数据相互结合,我们不单单要用到一个数据库,还会用到多个数据库,由于我们使用了ABP框架,所以就要学习框架中的知识点,进入代码环节。
平时我们都是继承EntityFramework下的DbContext,在ABP中需要继承AbpDbContext或者其他ABP封装的上下文,我们需要在此框架上进行进一步的扩充;
1
2
1.创建一个上下文类
在ABP的EntityFramework类库中创建
public class LQDBContext : AbpDbContext, IRepository
{
public LQDBContext()
: base(“LQDBContext”)
{
}
}
1
2
3
4
5
6
7
8
2.创建一些操作数据库的类库和接口
在EntityFramework文件夹添加
//操作数据库的帮助方法
public class SqlHelper : ISqlHelper, ITransientDependency
{
private readonly IDbContextProvider _dbContext;
public SqlHelper(IDbContextProvider<LQDBContext> dbContext){_dbContext= dbContext;}/// <summary>/// 获取数据的长度/// </summary>/// <param name="sql">sql语句</param>/// <param name="parameters">需要的参数</param>/// <returns></returns> public int Count(string sql, params object[] parameters){return _dbContext.GetDbContext().Database.ExecuteSqlCommand(sql, parameters);}/// <summary>/// 获取数据/// </summary>/// <typeparam name="T">返回数据格式的类</typeparam>/// <param name="sql">sql语句</param>/// <param name="parameters">需要的参数</param>/// <returns></returns>public IQueryable<T> GetData<T>(string sql, params object[] parameters){return _dbContext.GetDbContext().Database.SqlQuery<T>(sql, parameters).AsQueryable<T>();}
}//再创建一个接口类public interface ISqlHelper
{/// <summary>/// 通过sql获取数据的长度/// </summary>/// <param name="sql"></param>/// <param name="parameters"></param>/// <returns>一个长度数据</returns>int Count(string sql, params object[] parameters);/// <summary>/// 通过sql获取相应的集合/// </summary>/// <typeparam name="T"></typeparam>/// <param name="sql"></param>/// <param name="parameters"></param>/// <returns>一个集合</returns>IQueryable<T> GetData<T>(string sql, params object[] parameters);
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
3.注册IOC容器
在EntityFramework类库下找到XXXXXXDataModule类找到Initialize方法,并且注册我们的类;
public override void Initialize()
{
IocManager.RegisterAssemblyByConvention(Assembly.GetExecutingAssembly());
IocManager.Resolve();
}
4.在Application类库添加相应方法和接口
//创建一个XXXXAppService
public class AllLogAppService: IAllLogAppService
{
private readonly SqlHelper sqlHelper;
public AllLogAppService(SqlHelper _sqlHelper)
{
sqlHelper = _sqlHelper;
}
///
/// 查询数量
///
///
///
///
public int Count(string sql, params object[] WhereSql)
{
return sqlHelper.Count(sql, WhereSql);
}
public IQueryable GetData(string sql, params object[] WhereSql)
{
return sqlHelper.GetData(sql, WhereSql);
}
}
//相应接口
public interface IAllLogAppService
{
int Count(string sql, params object[] WhereSql);
IQueryable GetData(string sql, params object[] WhereSql);
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
5.使用方法
private readonly IAllLogAppService allLogAppService;
public IndexController(IAllLogAppService _allLogAppService)
{
allLogAppService = _allLogAppService;
}
public ActionResult Index(){
var list= allLogAppService.GetData<Authorization.Users.User>(“select * from AbpUsers”);
return View();
}
Abp连接多个数据源相关推荐
- 讨论有关codesoft能否获取或者连接多个数据源的问题以及codesoft数据源格式的设定
codesoft非常好的使用说明 https://max.book118.com/html/2017/0630/119299865.shtm 文章目录 codesoft是否可以连接多个数据源? txt ...
- Netbeans 中创建数据连接池和数据源步骤(及解决无法ping通问题)
1.启动glassfish服务器, 在浏览器的地址栏中输入 http://localhost:4848 2.首先建立JDBC Connection Pools: 3.new 一个Connectio P ...
- db2 联合数据源 mysql_myeclipse连接db2的数据源怎么配
我在eclipse中自己定义了一个数据源context.xml内容如下:<?xmlversion ="1.0"encoding="UTF-8"?> ...
- druid连接池以及数据源了解
关于druid数据库连接池的理解,对于druid连接池就是去拿连接,设置连接最长时间,设置最大连接数等, 在application.yml中配置了这句代码,就指定了DruidDataSource为数据 ...
- wildfly mysql xa_wildfly jobss 同时连接多个数据源 datasource xa-datasource
由于需要从一个远程机器取数据.处理后保存到本地数据库处理.用 wildfly datasource 会报: [com.arjuna.ats.arjuna] (default task-6) ARJUN ...
- weblogic连接oracle配置文件,配置weblogic连接oracle的数据源
Name:JDBC-DEV1 JNDI Name:jdbc.datasource.DS1 AdminServer Row Prefetch Size: 48 Stream Chunk Size:25 ...
- 3.ABP连接多个数据库(可以是不同的数据库)
一.背景 本次项目中需要连接多个不同的数据,其中一个库是SQL Server,两个是MySQL,花了一天多的时间,最后参考官方的GitHub上面的列子完成. 二.实现步骤 1.需要建立各个数据库的 D ...
- mysql jdbc 多数据源_springboot jdbc连接多个数据源
依赖 注:github中源码依赖是精简后的结果. org.springframework.boot spring-boot-starter-web org.springframework.boot s ...
- JNDI数据源的连接属性
如果无须Hibernate自己管理数据源,而是直接访问容器管理数据源,Hibernate可使用JNDI(Java Naming Directory Interface,Java命名目录接口)数据源的相 ...
最新文章
- Love = Accounting
- bitnamigitlab_Bitnami Gitlab 安装配置 step by step
- Kylin设置JDBC配置greenplum数据源
- 纳米丸穿透癌细胞(癌症)
- CS229学习笔记(2)多变量线性回归
- 佳能G1800 G2800 G3800系列打印机 端口使用中 请稍后完美解决!
- clickHouse 使用常见问题踩坑
- word中正文分栏重新换页问题
- Markdown 中的flow语法 flowchart.js 的基础教程
- 甲骨文官网下载jdk历史版本
- 某商场TD-LTE室内覆盖规划
- 等保2.0测评手册之安全计算环境
- 黑马程序员—写给各位同学,并致黑马各位老师的一封感谢信~~~~绝对给力
- eclipse插件说明
- ZCMU 1635 超大型 LED 显示屏
- php汽车找车位,六款停车APP吐血实测 竟能找到免费停车场?
- 【译】Learn D3 入门文档:Joins
- Photoshop插件-锐化-多重调整锐化 (Web)-脚本开发-PS插件
- aria2-linux
- 傲游浏览器如何显示收藏夹栏 傲游浏览器显示收藏夹栏的方法
热门文章
- LeetCode-116. 填充每个节点的下一个右侧节点指针
- 页面文字请使用css进行控制,css控制页面文字不能被选中user-select:none;
- python以追加方式打开文件 线程安全吗_多线程追加文件,不加锁,会出现什么情况 ?...
- 前端中实时显示当前时间的js代码
- android studio开关控件,Android studio实现滑动开关
- php中phpmyadmin打不开,解决phpMyAdmin打不开的方法
- 类路径是什么意思_甲状腺结节4a类严重吗,是什么意思?怎么治疗需要手术吗?一文解答...
- centos6.5安装apache php,Centos66安装apache24
- 质数因子 java_质数因子
- wxpython中文手册 官方版_wxPython API参考手册.chm