利用aspnetboilerplate提供的工具类IDbContextProvider

private readonly IDbContextProvider<XXXDbContext> _provider;
public XXXAppService(IDbContextProvider<XXXDbContext> provider)
{
_provider = provider;
}
public async Task Query()
{
var sql="your sql";
var tableList = _provider.GetDbContext().Query<Class>()
.FromSql(sql)
.AsNoTracking()
.ToList();
}

参考资料

Raw SQL Queries

How to execute a sql string in the application layer

比较原始 && 通用的方式

public class SqlHelper
{ public DataTable QueryForDatable(string sql)
{
SqlConnection conn = new System.Data.SqlClient.SqlConnection();
conn.ConnectionString = GetConnectionString(conn);
if (conn.State != ConnectionState.Open)
{
conn.Open();
} SqlCommand cmd = new SqlCommand();
cmd.Connection = conn;
cmd.CommandText = sql; SqlDataAdapter adapter = new SqlDataAdapter(cmd);
DataTable table = new DataTable();
adapter.Fill(table); conn.Close();
conn.Dispose();
return table; } //简而言之,拿到数据库连接字符串
private static string GetConnectionString(SqlConnection conn)
{
//这里需要拿到appsettings.json所在文件夹路径
var currentDirectoryPath = Directory.GetCurrentDirectory();
var configuration = AppConfigurations.Get(currentDirectoryPath);
//connectionStringName是数据库连接字符串在appsettings.json中的对应名称
return configuration.GetConnectionString(connectionStringName);
} /// <summary>
/// SQL 语句返回 dataset
/// </summary>
/// <param name="sql"></param>
/// <returns></returns>
public DataSet QueryForListDataTable(string sql)
{
SqlConnection conn = new SqlConnection();
conn.ConnectionString = GetConnectionString(conn);
if (conn.State != ConnectionState.Open)
{
conn.Open();
}
SqlCommand cmd = new SqlCommand();
cmd.Connection = conn;
cmd.CommandText = sql;
SqlDataAdapter adapter = new SqlDataAdapter(cmd);
DataSet dataSet = new DataSet();
adapter.Fill(dataSet); conn.Close();
conn.Dispose();
return dataSet;
}
}

aspnetboilerplate && .net core 使用原生sql的更多相关文章

  1. EF core的原生SQL查询以及用EF core进行分页查询遇到的问题

    在用.net core进行数据库访问,需要处理一些比较复杂的查询,就不得不用原生的SQL查询了,然而EF Core 和EF6 的原生sql查询存在很大的差异. 在EF6中我们用SqlQuery和Exe ...

  2. (25)ASP.NET Core EF查询(复杂查询运算符、原生SQL查询、异步查询)

    1.复杂查询运算符 在生产场景中,我们经常用到LINQ运算符进行查询获取数据,现在我们就来了解下生产场景经常出现几种复杂查询运算符. 1.1联接(INNER JOIN) 借助LINQ Join运算符, ...

  3. 在.net core web 项目中操作MySql数据库(非ORM框架,原生sql语句方式)

    本案例通过MySql.Data和Dapper包执行原生sql,实现对数据库的操作. 操作步骤: 第1步:在MySql数据库中新建表User(使用Navicat For MySql工具) 建表语句: c ...

  4. 10、Entity Framework Core 3.1入门教程-执行原生SQL

    本文章是根据 微软MVP solenovex(杨旭)老师的视频教程编写而来,再加上自己的一些理解. 视频教程地址:https://www.bilibili.com/video/BV1xa4y1v7rR ...

  5. Spring的jdbcTemplate查询执行原生sql

    在spring与hibernate整合时进行数据库检索,执行原生sql: public AppointmentEvaluateVo searchMyfeedbackDetail(String acco ...

  6. django原生sql

    参考:http://www.jb51.net/article/128257.htm coding=utf-8 from django.core.paginator import Paginator d ...

  7. 【OF框架】使用原生Sql查询返回实体

    使用原生Sql查询为Entity Framework Core自身的能力,本处描述如何在框架中调用该能力. 框架代码如下: (IoCHelper.Resolve<IDbContextCore&g ...

  8. Django学习——图书管理系统图书修改、orm常用和非常用字段(了解)、 orm字段参数(了解)、字段关系(了解)、手动创建第三张表、Meta元信息、原生SQL、Django与ajax(入门)

    1 图书管理系统图书修改 1.1 views 修改图书获取id的两种方案 1 <input type="hidden" name="id" value=& ...

  9. entityframework学习笔记--009-使用原生sql语句操作数据

    1 使用原生SQL语句更新--Database.ExecuteSqlCommand 假设你有一张如图9-1所示的Payment数据库表. 图9-1 1.1 实体类型: public class Pay ...

随机推荐

  1. php 图片加水印文字水印

    /*给图片加文字水印的方法*/ $dst_path = 'http://f4.topitme.com/4/15/11/1166351597fe111154l.jpg';//保证路径正确 $dst = ...

  2. php array数组的相关处理函数and str字符串处理与正则表达式

    下面给各位同学整理了一些关于php array数组的相关处理函数and str字符串处理与正则表达式,希望文章对你会有所帮助.   数组的相关处理函数: 1)数组的键值操作函数 array_value ...

  3. source insight -i failed reason

    双击.c调用sourceinsight.exe -i "路径" 如果路径太长就会新开一个窗口,测试相同文件,不同路径现象不同.

  4. ios app初始化和数据迁移的设计思路

    整体思路 一般app启动之后,都有一个初始化的过程. 此外兴许app升级,还须要考虑数据迁移.所以初始化和数据迁移的框架.在初期的版本号就要考虑好 总结一下我们的app採取的方案: 1.在持久化的文件 ...

  5. [Vue] Create Filters in Vue.js

    Just like in the command line, you can pipe a property through a filter to get a desired result. You ...

  6. C#中的“静态”

    静态构造函数: C#的一个新特征是也能够给类编写无參数的静态构造函数. 编写静态构造函数的一个原因是,类有一些静态字段或属性,须要在第一次使用类之前.从外部源中初始化这些静态的字段和属性. .NET运 ...

  7. xCode中怎样保存自己的代码块

    在开发iOS的过程中.xCode肯定是用得最多的工具.没有之中的一个.由于苹果官方提供的就这一个平台,尽管没有竞争对手,但秉承苹果一贯的注重细节的原则,xCode还是一款相当不错的IDE. 作为一名i ...

  8. 关于生命周期里执行setState

    React里生命周期的哪些方法里可以执行setState,这对于很多使用React很长时间的开发都是个迷惑的问题. 先看一下完整的生命周期. 再看两篇文章 React componentDidUpda ...

  9. List&lt;Map&lt;String, String&gt;&gt; 开启 Map&lt;String, List&lt;String&gt;&gt;

    将List变成Map结构体,下面的文字是没有水平! 写作方法传送前土壤很长一段时间.我不知道有没有好的解决办法.我们也希望提供! Map<String, String> map1 = ne ...

  10. 静态资源命名的注意点以及document.write与innerHTML的区别

    今天拿出了去年刚开始学前端的那本书来看,发现好多新东西. 使用下划线和混合大小写不利于SEO! document.write与innerHTML的区别 这个问题大概是初学前端的人才会问的吧,业务代码中 ...