tnblog
首页
视频
资源
登录
愿你出走半生,归来仍是少年
排名
3
文章
317
粉丝
22
评论
14
bootstrap 栅格布局一小例子
剑轩 : 后端写样式有点痛苦哇
一点flex布局的运用
剑轩 : 后端写样式有点痛苦哇
vue.js常用指令
剑轩 : 可以可以,多总结一点
ICP备案 :渝ICP备18016597号-1
网站信息:2018-2025TNBLOG.NET
技术交流:群号656732739
联系我们:contact@tnblog.net
公网安备:50010702506256
欢迎加群交流技术

core ef执行原生sql

4522人阅读 2022/1/14 16:54 总访问:2136315 评论:0 收藏:0 手机
分类: EF

直接执行原生sql:
添加扩展方法:

  1. public static class EntityFrameworkCoreExtensions
  2. {
  3.     private static DbCommand CreateCommand(DatabaseFacade facade, string sql, out DbConnection connection, params object[] parameters)
  4.     {
  5.         var conn = facade.GetDbConnection();
  6.         connection = conn;
  7.         conn.Open();
  8.         var cmd = conn.CreateCommand();
  9.         if (facade.IsSqlServer())
  10.         {
  11.             cmd.CommandText = sql;
  12.             cmd.Parameters.AddRange(parameters);
  13.         }
  14.         return cmd;
  15.     }
  16.     public static DataTable SqlQuery(this DatabaseFacade facade, string sql, params object[] parameters)
  17.     {
  18.         var command = CreateCommand(facade, sql, out DbConnection conn, parameters);
  19.         var reader = command.ExecuteReader();
  20.         var dt = new DataTable();
  21.         dt.Load(reader);
  22.         reader.Close();
  23.         conn.Close();
  24.         return dt;
  25.     }
  26.     public static List<T> SqlQuery<T>(this DatabaseFacade facade, string sql, params object[] parameters) where T : classnew()
  27.     {
  28.         var dt = SqlQuery(facade, sql, parameters);
  29.         return dt.ToList<T>();
  30.     }
  31.     public static List<T> ToList<T>(this DataTable dt) where T : classnew()
  32.     {
  33.         var propertyInfos = typeof(T).GetProperties();
  34.         var list = new List<T>();
  35.         foreach (DataRow row in dt.Rows)
  36.         {
  37.             var t = new T();
  38.             foreach (PropertyInfo p in propertyInfos)
  39.             {
  40.                 if (dt.Columns.IndexOf(p.Name) != -1 && row[p.Name] != DBNull.Value)
  41.                     p.SetValue(t, row[p.Name], null);
  42.             }
  43.             list.Add(t);
  44.         }
  45.         return list;
  46.     }
  47. }

使用:

  1.  List<Users> ulist = se.Database.SqlQuery<Users>("select * from users where number=@number"new SqlParameter("number""NS001")).ToList();


执行添加,删除,修改等操作
方法1:

  1.  int count =Database.ExecuteSqlRaw(sql,params);

方法2:

  1. context.Database.ExecuteSqlInterpolated()


欢迎加群讨论技术,1群:677373950(满了,可以加,但通过不了),2群:656732739。有需要软件开发,或者学习软件技术的朋友可以和我联系~(Q:815170684)

评价

腾讯防水墙+core ef实现登录返回JSON

使用腾讯防水墙接入滑动验证效果进行登录,防止别人恶意用代码登录。首先我们要去腾讯防水墙注册,然后创建验证官方地址:h...

.net core ef json序列化循环引用问题

直接贴代码:services.AddControllersWithViews() .AddNewtonsoftJson(options=&gt; { options.SerializerSettings.Cont...

core ef配置连接字符串

appsettings.json里边{ &quot;Logging&quot;:{ &quot;LogLevel&quot;:{ &quot;Default&quot;:&quot;Information&quot;, ...

core ef Code First-黑色主题效果

[TOC] 创建好实体Student类: public class Student { public int ID { get; set; } public string LastName ...

.NET core ef数据库迁移,以及迁移命令详解。code first。在不删除表的情况下保持同步

.NET CORE EF 数据库迁移需要的依赖Install-Package Microsoft.EntityFrameworkCore.SqlServer -version 3.1.1 Install-Pa...

core ef中执行数据库迁移无效

是因为差一个依赖项Microsoft.EntityFrameworkCore.Tools下载即可:nuget命令:Install-PackageMicrosoft.EntityFrameworkC...

.net core ef处理并发冲突

当某用户显示实体数据以对其进行编辑,而另一用户在上一用户的更改写入数据库之前更新同一实体的数据时,会发生并发冲突。 ...

.net core ef Fluent API配置外键

和以前的写法变了一点点,以前HasRequired换成HasOne即可。以前的写法://1:先配置多的一方(按照多对一方式来配置) model...

如何修改重置MD5加密后的sql用户密码

二次开发时,要加一个忘记密码的功能,后台写了修改密码的方法,数据库执行也修改成功,但是登录一直提示密码错误。之所以...

sql Server的几种分页方式和效率

--topnotin方式 selecttop条数*fromtablename whereIdnotin(selecttop条数*页数Idfromtablename) --ROW_NUMBER()O...

Mysql主从复制+读写分离

使用Mysql读写分离和主从复制的原因:*单台MySQL服务器的安全性,高可用性,高并发都是不满足实际的生产需要。介绍:1.MySQ...

sql Server 中使用游标

--声明一个游标 DECLAREMyCursorCURSOR FORSELECTTOP5FBookName,FBookCodingFROMTBookInfo//定义一个叫MyCursor的游标,...

Mysql控制台插入中文数据报错1366解决

计算机配置: windows系统.数据库:MySQL5.5.如图 : 下图为表结构信息:通过 show full columns from userinfo;查询所得 na...

sqlserver order by

order by 字段名order by 第几个字段(整形)order by 排序:order by 字段名:通过字段名指定的字段排序 order by 字段数...