当前位置: 首页 > wzjs >正文

泉州网页网站制作北京百度公司地址在哪里

泉州网页网站制作,北京百度公司地址在哪里,北京网页设计哪家好,杭州室内设计培训文章目录 前言一、执行查询&#xff08;返回数据&#xff09;1&#xff09; 使用 FromSqlRaw或 FromSqlInterpolated 方法&#xff0c;适用于 DbSet<T>&#xff0c;返回实体集合。2&#xff09;结合 LINQ 查询 二、执行非查询操作&#xff08;增删改&#xff09;1&#x…

文章目录

  • 前言
  • 一、执行查询(返回数据)
    • 1) 使用 FromSqlRaw或 FromSqlInterpolated 方法,适用于 DbSet<T>,返回实体集合。
    • 2)结合 LINQ 查询
  • 二、执行非查询操作(增删改)
    • 1)使用 ExecuteSqlRaw() 或 ExecuteSqlInterpolated() 、ExecuteSqlInterpolatedAsync()方法,返回受影响的行数。
  • 三、调用存储过程
    • 1)执行查询存储过程
    • 2)执行非查询存储过程
  • 四、事务处理
    • 1)确保多个 SQL 操作原子性
  • 五、原生 SQL 查询的注意事项
  • 总结


前言

为什么要写原生SQL语句?

  1. 尽管EF Core已经非常强大,但是任然存在着无法被写成标准EF Core调用方法的SQL语句,少数情况下任然需要写原生SQL。
  2. 存在问题:可能无法跨数据库操作。

一、执行查询(返回数据)

1) 使用 FromSqlRaw或 FromSqlInterpolated 方法,适用于 DbSet,返回实体集合。

示例:查询数据(建议使用FromSqlInterpolated,防止SQL注入

var blogs = context.Blogs.FromSqlRaw("SELECT * FROM Blogs WHERE Rating > {0}", 3).ToList();// 或使用插值字符串(参数化,防注入)
var rating = 3;
var blogsSafe = context.Blogs.FromSqlInterpolated($"SELECT * FROM Blogs WHERE Rating > {rating}").ToList();

2)结合 LINQ 查询

var filteredBlogs = context.Blogs.FromSqlInterpolated("SELECT * FROM Blogs").Where(b => b.Url.Contains("dotnet")).OrderBy(b => b.Rating).ToList();

二、执行非查询操作(增删改)

1)使用 ExecuteSqlRaw() 或 ExecuteSqlInterpolated() 、ExecuteSqlInterpolatedAsync()方法,返回受影响的行数。

示例:更新数据

var rowsAffected = context.Database.ExecuteSqlRaw("UPDATE Blogs SET Rating = 5 WHERE Name LIKE '%EF Core%'");// 参数化示例
var minRating = 3;
var rowsSafe = await context.Database.ExecuteSqlInterpolatedAsync($"DELETE FROM Blogs WHERE Rating < {minRating}");

三、调用存储过程

1)执行查询存储过程

var blogs = context.Blogs.FromSqlRaw("EXEC GetTopRatedBlogs @p0", 5).ToList();

2)执行非查询存储过程

context.Database.ExecuteSqlRaw("EXEC ArchiveOldBlogs @p0", DateTime.Now.AddYears(-1));

四、事务处理

1)确保多个 SQL 操作原子性

using (var transaction = context.Database.BeginTransaction())
{try{context.Database.ExecuteSqlRaw("UPDATE Blogs SET Rating = 5 WHERE BlogId = 1");context.Database.ExecuteSqlRaw("DELETE FROM Blogs WHERE BlogId = 2");transaction.Commit();}catch{transaction.Rollback();}
}

五、原生 SQL 查询的注意事项

  1. 参数化查询:始终使用参数化输入(如 {0} 或插值语法)避免 SQL 注入。
  2. 列匹配:查询返回的列名必须与实体属性名匹配,或通过 AS 别名映射。
  3. 跟踪变更:默认跟踪实体变更,若无需跟踪可加 .AsNoTracking()。
  4. 数据库兼容性:SQL 语法需适配具体数据库(如 SQL Server 和 SQLite 的差异)。
  5. 性能:仅在必要时使用原生 SQL,优先选择 LINQ 以保证类型安全和可维护性。

总结

EF Core 的原生 SQL 方法适用于特定场景,但需谨慎使用以确保安全性和可维护性。优先考虑 LINQ,复杂场景再选择原生 SQL。


文章转载自:

http://0w3calsO.ffydh.cn
http://68iJrYyT.ffydh.cn
http://iFpS50XL.ffydh.cn
http://LKoQVOYb.ffydh.cn
http://DdnvhhRG.ffydh.cn
http://7j1MBU6T.ffydh.cn
http://O5yCUTln.ffydh.cn
http://uhZUyqNs.ffydh.cn
http://FtVSHwJo.ffydh.cn
http://ASlSl7Ei.ffydh.cn
http://SF33c458.ffydh.cn
http://nLS4U78H.ffydh.cn
http://xWKjExaF.ffydh.cn
http://B6XD9gmU.ffydh.cn
http://Wow9jeez.ffydh.cn
http://kl9TvVrR.ffydh.cn
http://4pd7rMZg.ffydh.cn
http://QDFu4YdA.ffydh.cn
http://cDxXpidY.ffydh.cn
http://jfCfpAif.ffydh.cn
http://RQU6H3Rr.ffydh.cn
http://NYIfKuVb.ffydh.cn
http://7m6xlVtp.ffydh.cn
http://f88ii9Fg.ffydh.cn
http://PEf3TJa2.ffydh.cn
http://SOrjR157.ffydh.cn
http://KmsWjFnW.ffydh.cn
http://2BheXkBX.ffydh.cn
http://gHoLonzM.ffydh.cn
http://sV03Wcwk.ffydh.cn
http://www.dtcms.com/wzjs/704209.html

相关文章:

  • html5网站用什么软件做网络写手赚钱的网站
  • 小说网站论文摘要wordpress静用字体
  • 电子产品商务网站模板设计自己的网站
  • 网站怎么使用长春网站建设产品展示
  • 网站建设课程ppt前端学校网站开发视频教程
  • 怎么用flash做游戏下载网站公司网上注册在哪个网站
  • 网站右键禁止快速优化网站排名的方法
  • 2019做网站必须做可信网站吗做蛋糕的英文网站
  • pdf怎么做电子书下载网站禄丰网站建设
  • 怎么样做好网站运营南阳市建网站公
  • 对网站做数据统计的目的是什么传奇免费网站建设
  • wordpress快速仿站教程网站名称备案
  • 河北省建设工程教育网站建网站在哪里做广告
  • 网站,商城,app 建设有新的wordpress更新是英文版
  • 中英语网站制作方法框架型网站
  • 怎么做网站企业介绍东莞代理公司注册
  • 企业网站建设排名重庆网站排名
  • 福永网站优化网站建设三方协议
  • 网站建设学习内容汝阳网站建设
  • 简单网站首页怎么做网站规划 设计 制作 发布与管理过程
  • 给网站平台做推广叫什么安阳信息网
  • 东莞网站建设方案服务营销型网站特征
  • 美容手机网站模板电子商务网站订单功能
  • 移动网站功能wordpress 新闻发布
  • 网站安全建设方案例文做网站怎么接业务
  • 北京网站建设管庄阳新网站建设
  • 服务器部署php网站银川百度做网站多少钱
  • 织梦模板网站源码下载做网站需完成的软件
  • 怎么整理网站网站的seo是什么意思
  • 网站项目建设策划书潮州网站制作