架构师_程序员_码农网

查看: 58|回复: 0

[资料] EF Core 系列(五)执行 SQL 语句或者视图、存储过程

[复制链接]
发表于 2021-2-19 14:00:14 | 显示全部楼层
EF Core 系列(二)封装 OnModelCreating 利用反射创建索引等
https://www.itsvse.com/thread-9392-1-1.html

EF Core 系列(三)实体框架影子属性[转载]
https://www.itsvse.com/thread-9558-1-1.html

EF Core 系列(四)查看生成的 SQL 语句
https://www.itsvse.com/thread-9564-1-1.html
通过 Entity Framework Core 可以在使用关系数据库时下降到原始 SQL 查询。 所需查询不能使用 LINQ 来表示时,可以使用原始 SQL 查询。 如果使用 LINQ 查询导致 SQL 查询效率低下,也可以使用原始 SQL 查询。 原始 SQL 查询可返回一般实体类型或者模型中的无键实体类型。

回顾:使用 Entity Framework(EF) 执行 SQL 语句和存储过程

Entity Framework(EF) 执行 SQL 语句和存储过程
https://www.itsvse.com/thread-9517-1-1.html
执行 SQL 语句查询、更新、删除,调用存储过程、视图,使用如下方法:

  • FromSqlRaw
  • FromSqlInterpolated
  • ExecuteSqlRaw
  • ExecuteSqlInterpolated



FromSqlRaw、FromSqlInterpolated 主要是进行查询操作
ExecuteSqlRaw、ExecuteSqlInterpolated 对数据库执行新增、更新、删除操作,返回影响的行数


结尾是 Interpolated 关键词的,一般是有参数的增删改查,一种能抵御 SQL 注入攻击的方式使用字符串内插语法。例如:

输出一下 sql 语句,查询条件并不是通过拼接传递,如下图:

c#参数化Parameters利用sp_executesql执行sql语句
https://www.itsvse.com/thread-3111-1-1.html


QQ截图20210219135754.jpg

使用原生 SQL 查询时需注意以下几个限制:

SQL 查询必须返回实体类型的所有属性的数据。
结果集中的列名必须与属性映射到的列名称匹配。 请注意,此行为不同于 EF6。 EF6 中忽略了原始 SQL 查询的属性/列映射关系,结果集列名必须与属性名相匹配。
SQL 查询不能包含关联数据。 但是,在许多情况下你可以在查询后面紧跟着使用 Include 方法以返回关联数据(请参阅包含关联数据)。


(完)




上一篇:EF Core 系列(四)查看生成的 SQL 语句
下一篇:Fiddler 替换链接、请求转发重定向
码农网,只发表在实践过程中,遇到的技术难题,不误导他人。
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

免责声明:
码农网所发布的一切软件、编程资料或者文章仅限用于学习和研究目的;不得将上述内容用于商业或者非法用途,否则,一切后果请用户自负。本站信息来自网络,版权争议与本站无关。您必须在下载后的24个小时之内,从您的电脑中彻底删除上述内容。如果您喜欢该程序,请支持正版软件,购买注册,得到更好的正版服务。如有侵权请邮件与我们联系处理。

Mail To:help@itsvse.com

QQ|手机版|小黑屋|架构师 ( 鲁ICP备14021824号-2 )|网站地图

GMT+8, 2021-3-1 14:18

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表