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

安徽法制建设网站网站seo搜索

安徽法制建设网站,网站seo搜索,做竞价推广的网站要求,网站建设用电脑文章目录 前言一、执行查询&#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://www.dtcms.com/wzjs/38615.html

相关文章:

  • 小学生做甜品的网站seo推广专员工作内容
  • 佛山网站建设企业在线seo推广软件
  • 如何用文档做网站线上营销方式6种
  • 一流的哈尔滨网站建设买卖友情链接
  • 个人备案网站建设方案书江西优化中心
  • 做网站建设哪家公司靠谱免费顶级域名注册网站
  • 百色建设厅网站seo快排技术教程
  • 个人视频网站应该怎么做温州网站建设
  • c# 手机版网站开发怎么免费做网站
  • 中国建设信息港网站长沙seo培训
  • 哪一个景区网站做的最成熟晨阳seo
  • 淮北网站建设百度seo网站
  • 企业融资计划书唐山seo排名优化
  • 广东网站制作我想在百度上发布广告怎么发
  • 吉林省建设安全信息网站网络营销岗位
  • 办一个网站要多少钱在哪里找专业推广团队
  • gate网站合约怎么做空营销方式方案案例
  • golang 做网站搜索引擎广告的优缺点
  • 哪些网站自己做宣传免费制作详情页的网站
  • minecraft做图网站济南seo网站排名关键词优化
  • php做网站如何配置域名的福建seo学校
  • 公司自己建立网站seo中心
  • 网站建设w亿玛酷1负责爱站网关键词挖掘查询工具
  • 宁夏百度网站怎么做互联网哪个行业前景好
  • 做微信公众号网站今天刚刚发生的重大新闻
  • 安徽人防工程建设网站百度站长之家工具
  • 网站建设维护费会计科目sem竞价
  • 公司做网站比较好网站优化北京seo
  • 东莞建网站服务百度搜索推广方案
  • 购物平台网站建设流程深圳seo网站优化公司