一:在EntityFramework项目中创建类如:ZSWDbContext。

public classZSWDbContext : AbpDbContext

{public ZSWDbContext() : base("ZSWConnectionString")

{//这里设置不会执行//Database.SetInitializer(null);

}}

二:在DataModule.cs类中设置DbContext在项目启动时不检测数据库的一致性。

否则会报The model backing the 'ApplicationDbContext' context has changed since the database was created. Consider using Code First Migrations to update错误。

[DependsOn(typeof(AbpZeroEntityFrameworkModule), typeof(AmoiCoreModule))]public classAmoiDataModule : AbpModule

{public override voidPreInitialize()

{

Database.SetInitializer(new CreateDatabaseIfNotExists());

Database.SetInitializer(null);

Configuration.DefaultNameOrConnectionString= "Default";

}public override voidInitialize()

{

IocManager.RegisterAssemblyByConvention(Assembly.GetExecutingAssembly());

}

}

三:在Core项目中定义执行Sql的接口:

public interfaceISqlExecuter

{///

///执行给定的命令///

/// 命令字符串

/// 要应用于命令字符串的参数

/// 执行命令后由数据库返回的结果

int Execute(string sql, params object[] parameters);///

///创建一个原始 SQL 查询,该查询将返回给定泛型类型的元素。///

/// 查询所返回对象的类型

/// SQL 查询字符串

/// 要应用于 SQL 查询字符串的参数

///

IQueryable SqlQuery(string sql, params object[] parameters);

}

然后在EntityFramework中实现该接口:

public classSqlExecuter : ISqlExecuter, ITransientDependency

{private readonly IDbContextProvider_dbContextProvider;public SqlExecuter(IDbContextProviderdbContextProvider)

{

_dbContextProvider=dbContextProvider;

}///

///执行给定的命令///

/// 命令字符串

/// 要应用于命令字符串的参数

/// 执行命令后由数据库返回的结果

public int Execute(string sql, params object[] parameters)

{return_dbContextProvider.GetDbContext().Database.ExecuteSqlCommand(sql, parameters);

}///

///创建一个原始 SQL 查询,该查询将返回给定泛型类型的元素。///

/// 查询所返回对象的类型

/// SQL 查询字符串

/// 要应用于 SQL 查询字符串的参数

///

public IQueryable SqlQuery(string sql, params object[] parameters)

{return _dbContextProvider.GetDbContext().Database.SqlQuery(sql, parameters).AsQueryable();

}

}

四:在构造函数中注入:

private readonlyISqlExecuter _sqlExecuter;publicAppService(ISqlExecuter sqlExecuter)

{

_sqlExecuter=sqlExecuter;

}

然后调用存储过程:

const string sql = "dbo.ResourceDataSync @STATION";var list = _sqlExecuter.SqlQuery(sql, new SqlParameter("@STATION", "石家庄站")).ToList();

注意的地方:

ABP默认是开启事务的,如果在Service中同时调用不同的数据库,会出现

服务器×××上的MSDTC不可用解决办法 错误,关闭事务即可解决:

[UnitOfWork(isTransactional: false)]

参考博客:

server使用abp中调用存储过程 sql_ABP中连接已有数据库执行Sql或存储过程相关推荐

  1. 【Groovy】闭包 Closure ( 闭包中调用 Groovy 脚本中的方法 | owner 与 delegate 区别 | 闭包中调用对象中的方法 )

    文章目录 一.闭包中调用 Groovy 脚本中的方法 二.owner 与 delegate 区别 三.闭包中调用 Groovy 对象中的方法 一.闭包中调用 Groovy 脚本中的方法 在 Groov ...

  2. JSP中调用java类中的方法

    JSP中调用java类中的方法 1.新建一个项目,在src文件夹下添加一个包:如:test 2.再在包中添加一个类:如 package test; public class conDatabase { ...

  3. SQLServer 中存储过程返回的三种方式( 包括存储过程的创建, 在存储过程中调用, 在VS中调用的方法)...

    存储过程有三种返回: 1.   用return返回数字型数据 2.   用返回参数返回结果,可以返回各种数据类型(通过游标来循环查询结果每一行) 3.   直接在存储过程中用select返回结果集,可 ...

  4. oracle中调用过程,oracle中如何调用存储过程

    oracle中如何调用存储过程 发布时间:2020-03-08 03:28:03 来源:51CTO 阅读:511 作者:lxg290 一.通过pls块来调用存储过程: declare p_dzno v ...

  5. php中调用脚本,PHP中如何调用RScript脚本(附代码)

    这篇文章主要介绍了PHP中如何调用RScript脚本,有一定的参考价值,感兴趣的朋友可以参考一下,希望对你有所帮助! 由于某个原因,需要在PHP中调用R语音进行绘制图像.经过多方百度,目前大部分解决方 ...

  6. C/C++中调用api设置mysql连接的编码方式

    MySQL在C/C++中调用api设置连接mysql的编码方式有以下几种方法: 1. mysqli_set_charset 调用示例: [cpp] view plain copy ret = mysq ...

  7. 在jsp中调用常量类中的属性值

    在jsp中想要调用常量类中的属性值方法: 1.  在jsp中导入此常量类   <%@page import="com.Zyp.constant.FlagConstant"%& ...

  8. VC6中调用.dll文件中的函数——傻瓜式教程

    决这一问题上的 帮助. 先声明下,我此前从未涉及过Windows 下的编程,所以对于懂了这么点东西就要写篇文章, 大家可不要鄙视啊. 实际上,写这篇文章的最主要原因是,我觉得调用.dll 文件里的函数 ...

  9. java中调用js_java编程中实现调用js方法分析

    本文实例讲述了java编程中实现调用js方法.分享给大家供大家参考,具体如下: /* * 加载脚本引擎,并在java中调用js方法 */ public void test2() { ScriptEng ...

  10. [Android6.0]App中调用init.rc中的服务,从而运行shell脚本

    Author: Younix Platform: RK3399 OS: Android 6.0 Kernel: 4.4 Version: v2017.07 需求:希望在 Android App 中添加 ...

最新文章

  1. python输入输出-python输入与输出
  2. 【Linux】一步一步学Linux——cat/tac命令(38)
  3. utm虚拟机安装linux,UTM: 在 iOS 上安装 Windows 或 Linux 等系统及虚机安装过程
  4. P2257 YY的GCD
  5. 网络启动安装linux客户机nfs设置,NFS服务端和客户端安装配置
  6. jsp前三章测试改错题
  7. 【免费毕设】asp.net服装连锁店管理系统的设计与开发(源代码+lunwen)
  8. linux日志.pdf,一种用于LINUX的AUDIT日志分析方法.pdf
  9. jQuery右键菜单ContextMenu使用笔记
  10. android图片选择器实现说明
  11. 不确定性原理的前世今生 · 数学篇(一)
  12. android 滤镜录制,Android Camera 实时滤镜
  13. 计算机星期六星期天的那个函数,WPS表格日期与时间函数
  14. JMeter接口测试工具基础 — Badboy工具
  15. Bumped Map And Normal Map
  16. linux系统的种类
  17. 程序员通常都有哪些业余爱好
  18. h3c查在线计算机,H3C 交换机查看所有端口状态的命令
  19. C#身份证验证封装的函数方法
  20. TwinCAT3常见问题1

热门文章

  1. mysql中explain使用
  2. MySQL优化(二)
  3. tf入门-池化函数 tf.nn.max_pool 的介绍
  4. weblogic系列漏洞整理 -- 1. weblogic安装
  5. 最新友盟6.1.1集成遇到的坑,自定义分享界面实现(跳转控制器做分享)
  6. border-collapse
  7. 再回首,Java温故知新(六):Java基础之变量
  8. perl 脚本学习-----两个文件排序之后输入到一个文件
  9. 按之字形顺序打印二叉树(C++)
  10. Security+ 学习笔记51 风险分析