EF Core 5.0原生sql语句执行
微软官网文档:
https://docs.microsoft.com/zh-cn/ef/core/querying/raw-sql
原生sql执行
public async Task<(int, int, int)> GetImgViewCount(){const string sql = @" select--图片总数(可查看)(select count(0) from[img_info] where [i_status] = 1) as img_view_count--领导图片数(可查看),(select count(0) from[img_info] where [i_status] = 1 and [exist_leader] = 1) as leader_view_count--视频数(可查看),(select count(0) from[video] where [video_status] = 1) as video_view_count";(int, int, int) result = (0, 0, 0);MyDbContext myDbContext = null;DbConnection connection = null;try{myDbContext = new MyDbContext();connection = myDbContext.Database.GetDbConnection();await connection.OpenAsync();DbCommand dbCommand = connection.CreateCommand();dbCommand.CommandText = sql;DbDataReader reader = await dbCommand.ExecuteReaderAsync();while (await reader.ReadAsync()){//图片总数(可查看)result.Item1 = Convert.ToInt32(reader["img_view_count"]);//领导图片数(可查看)result.Item2 = Convert.ToInt32(reader["leader_view_count"]);//视频数(可查看)result.Item3 = Convert.ToInt32(reader["video_view_count"]);break;}await reader.CloseAsync();await reader.DisposeAsync();await dbCommand.DisposeAsync();}catch (Exception){throw;}finally{if (connection != null){await connection.CloseAsync();await connection.DisposeAsync();}if (myDbContext != null){await myDbContext.DisposeAsync();}}return result;}
MyDbContext
using Microsoft.EntityFrameworkCore;
using System;
using System.Collections.Generic;
using System.Text;
using WebNetCore5_Img_Storage.Model;
using WebNetCore5_Img_Storage.Model.Tool;
using Microsoft.Extensions.Logging;
using Microsoft.EntityFrameworkCore.Diagnostics;namespace WebNetCore5_Img_Storage.DAL
{public class MyDbContext : DbContext{//public MyDbContext()//{// //设置执行超时限制// //this.Database.SetCommandTimeout(60);//}protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder){//连接字符串配置string connectionString = MyConfigReader.GetConfigValue("connctionDb");optionsBuilder.UseSqlServer(connectionString);//设置不跟踪所有查询 optionsBuilder.UseQueryTrackingBehavior(QueryTrackingBehavior.NoTracking);//启用敏感数据日志记录optionsBuilder.EnableSensitiveDataLogging();#if DEBUG//记录日志 optionsBuilder.LogTo(msg =>{//调试-窗口消息System.Diagnostics.Debug.WriteLine(msg);//输出-窗口消息Console.WriteLine(msg);});
#endif}public virtual DbSet<Img_info> Img_info { get; set; } public virtual DbSet<Video> Video { get; set; }}
}
EF Core 5.0原生sql语句执行相关推荐
- ef执行原生sql语句_EF Core中执行原生SQL语句
一.课程介绍之所以今天录制这个系列文章的主要原因是,想在快速帮助到大家上手在ASP.NET Core WebAPI中结合EF Core来操作我们的数据库.EF Core的基础文章和基础课程实在是太多了 ...
- EFCore之执行原生SQL语句
EFCore通过 LINQ 语法为我们提供了非常便利的方式来操作数据库. 当有些业务逻辑较复杂而不能使用 LINQ 来查询时,可以使用原生 SQL 查询. 或者使用 LINQ 查询导致 SQL 查询效 ...
- php执行删除语句代码,ThinkPHP之数据删除和执行原生SQL语句
一.数据删除 delete() 返回受影响的记录条数 $goods->delete(30);//删除主键值等于30的记录信息 $goods->delete('10,12,14');//删除 ...
- thinkphp mysql 预处理_thinkPHP框架中执行原生SQL语句的方法
本文实例讲述了thinkPHP框架中执行原生SQL语句的方法.分享给大家供大家参考,具体如下: 怎样在thinkphp里面执行原生的sql语句? $Model = new Model();//或者 $ ...
- jpa原生query_JPA执行原生SQL语句
前言 作业的项目终于告一段落了暂时,这周继续进行日志系统的编写,只可惜这周开始练科三了,一开始是全天练车,导致每天写代码的时间减少了好多,后来时间进行了调整(早上四点半到七点半,晚上五点到七点多),也 ...
- 2016/05/13 thinkphp 3.2.2 ① 数据删除及执行原生sql语句 ②表单验证
[数据删除及执行原生sql语句] delete() 返回受影响的记录条数 $goods -> delete(30); 删除主键值等于30的记录信息 $goods -> delete( ...
- django执行原生SQL语句
1.原生SQL用法概述 django可以执行原生SQL语句,主要分读和写两类,用法如下: 读(查):xxxModel.object.raw() 写(增删改):connection.cursor() 2 ...
- [Go] gorm执行原生sql语句
当有复杂sql语句的时候,我们需要执行原生sql语句,这样更加方便 比如下面的这条sql语句 //查询每天条数 type EveryDayNum struct {Day string `json:&q ...
- php 原生sql 分页查询,Laravel框架执行原生SQL语句及使用paginate分页的方法
本文实例讲述了Laravel框架执行原生SQL语句及使用paginate分页的方法.分享给大家供大家参考,具体如下: 1.运行原生sql public function getList($data){ ...
最新文章
- wtl中显示html,用WTL构建HTML界面应用程序(1)
- 0428专题:行内元素与块状元素
- python中csv文件把成绩加入_【学习笔记】python3中csv文件使用
- C++ ASSERT() 断言机制
- 想要有设计有格调|这波PSD时尚渐变创意海报模板,没跑
- 软件测试52讲-安全第一:渗透测试
- C# .NET与数据结构
- java查看堆内对象_如何查看一个对象占用堆内存的大小
- Douglas Peucker算法的C#实现
- 3D人脸重建算法汇总
- Java语言中String累的总结
- 详解无人驾驶汽车工作原理及关键技术。
- 小程序之H5游戏砸金蛋
- 波士顿大学计算机科学的就业,波士顿大学计算机科学本科申请(附案例)
- Android打包apk实现原理与流程(雷惊风)
- 推荐书籍:RNA甲基化表观转录组学
- CTF show 萌新区解题报告 (一)
- 新必应 new bing【NB】这不比知云翻译香
- 微信营销和微博营销有什么不同
- 错误 编码(此代码是错误的)