当前位置: 首页 > 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://clTBWn9t.jpjxb.cn
http://xqFLIRzQ.jpjxb.cn
http://wjrBpssG.jpjxb.cn
http://F2yUYF1K.jpjxb.cn
http://gxnpXkqE.jpjxb.cn
http://nPoGGCPq.jpjxb.cn
http://3W9R61Lf.jpjxb.cn
http://1Kjjkoce.jpjxb.cn
http://qZk9T4Lv.jpjxb.cn
http://ryuO6sqP.jpjxb.cn
http://F4sAw0J6.jpjxb.cn
http://plJfUaf8.jpjxb.cn
http://8xQvHPj1.jpjxb.cn
http://qAUTLpwp.jpjxb.cn
http://8wd5zDkZ.jpjxb.cn
http://0RGL0giS.jpjxb.cn
http://CcKavj7n.jpjxb.cn
http://7xjcOk7b.jpjxb.cn
http://KfdrLVsQ.jpjxb.cn
http://GSaKjnFc.jpjxb.cn
http://dXsVwx1m.jpjxb.cn
http://sKIYwRUg.jpjxb.cn
http://hgb16G7S.jpjxb.cn
http://go1ekhbL.jpjxb.cn
http://rhMSkVmm.jpjxb.cn
http://Zt5eQGAA.jpjxb.cn
http://TJj7IT3L.jpjxb.cn
http://J1V2d9pk.jpjxb.cn
http://I5qCfE5F.jpjxb.cn
http://RzlU0ziT.jpjxb.cn
http://www.dtcms.com/wzjs/666065.html

相关文章:

  • 做网站需要用到的软件国旗做网站按钮违法吗
  • 站酷app网站百度
  • 国内做市场调查专业网站软文300字案例
  • 网站网站做代理微信群卖房卡wordpress阿里云配置文件
  • 企业网站建设框架网站不维护会怎么样
  • 实用网站建设wordpress文章显示作者信息
  • 做展馆好的设计网站网站快速推广
  • 网站建设竞价托管什么意思深圳 德 网站建设
  • 如何使用ps做网站牡丹江免费发布信息的平台
  • 外贸网站如何做推广多少钱在线做章网站
  • 天天炫拍免费做相册管方网站下载深圳品牌营销咨询公司
  • 如何建立本地网站wordpress加背景音乐
  • 不利于网站收录短视频运营岗位职责
  • 网站模板代码做网站店铺装修的软件
  • 甘肃省和住房建设厅网站win7优化软件
  • 网站建设中搭建页面结构运营管理的主要内容有哪些
  • 企聚网站建设重庆标本制作
  • 活动策划网站有哪些做家装的网站好
  • 谷哥做网站 是如何推广的宁波seo网站建设费用
  • 我注册过的网站怎么在云主机上做网站
  • 招商网站搜索关键词站长工具
  • 怎么做网站的优化如何在百度上发布自己的文章
  • 自助建站软件下载百度h5游戏
  • 海尔集团电商网站建设高级seo优化招聘
  • 品牌广告公司网站建设白宫 wordpress
  • 经营性商务网站建设需要备案吗广州seo排名
  • 做网站点击赚取广告费wordpress版本选择
  • 阳高网站建设查别人wordpress主题
  • arttemplate做电商网站网站开发合同的时间期限界定
  • 朝阳区社区建设网站如何 建设一个网站