分类专栏: 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连接多个数据源相关推荐

  1. 讨论有关codesoft能否获取或者连接多个数据源的问题以及codesoft数据源格式的设定

    codesoft非常好的使用说明 https://max.book118.com/html/2017/0630/119299865.shtm 文章目录 codesoft是否可以连接多个数据源? txt ...

  2. Netbeans 中创建数据连接池和数据源步骤(及解决无法ping通问题)

    1.启动glassfish服务器, 在浏览器的地址栏中输入 http://localhost:4848 2.首先建立JDBC Connection Pools: 3.new 一个Connectio P ...

  3. db2 联合数据源 mysql_myeclipse连接db2的数据源怎么配

    我在eclipse中自己定义了一个数据源context.xml内容如下:<?xmlversion ="1.0"encoding="UTF-8"?> ...

  4. druid连接池以及数据源了解

    关于druid数据库连接池的理解,对于druid连接池就是去拿连接,设置连接最长时间,设置最大连接数等, 在application.yml中配置了这句代码,就指定了DruidDataSource为数据 ...

  5. wildfly mysql xa_wildfly jobss 同时连接多个数据源 datasource xa-datasource

    由于需要从一个远程机器取数据.处理后保存到本地数据库处理.用 wildfly datasource 会报: [com.arjuna.ats.arjuna] (default task-6) ARJUN ...

  6. weblogic连接oracle配置文件,配置weblogic连接oracle的数据源

    Name:JDBC-DEV1 JNDI Name:jdbc.datasource.DS1 AdminServer Row Prefetch Size:  48 Stream Chunk Size:25 ...

  7. 3.ABP连接多个数据库(可以是不同的数据库)

    一.背景 本次项目中需要连接多个不同的数据,其中一个库是SQL Server,两个是MySQL,花了一天多的时间,最后参考官方的GitHub上面的列子完成. 二.实现步骤 1.需要建立各个数据库的 D ...

  8. mysql jdbc 多数据源_springboot jdbc连接多个数据源

    依赖 注:github中源码依赖是精简后的结果. org.springframework.boot spring-boot-starter-web org.springframework.boot s ...

  9. JNDI数据源的连接属性

    如果无须Hibernate自己管理数据源,而是直接访问容器管理数据源,Hibernate可使用JNDI(Java Naming Directory Interface,Java命名目录接口)数据源的相 ...

最新文章

  1. Love = Accounting
  2. bitnamigitlab_Bitnami Gitlab 安装配置 step by step
  3. Kylin设置JDBC配置greenplum数据源
  4. 纳米丸穿透癌细胞(癌症)
  5. CS229学习笔记(2)多变量线性回归
  6. 佳能G1800 G2800 G3800系列打印机 端口使用中 请稍后完美解决!
  7. clickHouse 使用常见问题踩坑
  8. word中正文分栏重新换页问题
  9. Markdown 中的flow语法 flowchart.js 的基础教程
  10. 甲骨文官网下载jdk历史版本
  11. 某商场TD-LTE室内覆盖规划
  12. 等保2.0测评手册之安全计算环境
  13. 黑马程序员—写给各位同学,并致黑马各位老师的一封感谢信~~~~绝对给力
  14. eclipse插件说明
  15. ZCMU 1635 超大型 LED 显示屏
  16. php汽车找车位,六款停车APP吐血实测 竟能找到免费停车场?
  17. 【译】Learn D3 入门文档:Joins
  18. Photoshop插件-锐化-多重调整锐化 (Web)-脚本开发-PS插件
  19. aria2-linux
  20. 傲游浏览器如何显示收藏夹栏 傲游浏览器显示收藏夹栏的方法

热门文章

  1. LeetCode-116. 填充每个节点的下一个右侧节点指针
  2. 页面文字请使用css进行控制,css控制页面文字不能被选中user-select:none;
  3. python以追加方式打开文件 线程安全吗_多线程追加文件,不加锁,会出现什么情况 ?...
  4. 前端中实时显示当前时间的js代码
  5. android studio开关控件,Android studio实现滑动开关
  6. php中phpmyadmin打不开,解决phpMyAdmin打不开的方法
  7. 类路径是什么意思_甲状腺结节4a类严重吗,是什么意思?怎么治疗需要手术吗?一文解答...
  8. centos6.5安装apache php,Centos66安装apache24
  9. 质数因子 java_质数因子
  10. wxpython中文手册 官方版_wxPython API参考手册.chm