内联 SQL 查询和实体框架触发的查询有啥区别?

Posted

技术标签:

【中文标题】内联 SQL 查询和实体框架触发的查询有啥区别?【英文标题】:What is the difference between in-line SQL queries and queries fired by Entity Framework?内联 SQL 查询和实体框架触发的查询有什么区别? 【发布时间】:2013-10-31 19:38:41 【问题描述】:

我是实体框架的新手。

我在想编写内联 SQL 查询和实体框架之间有什么区别。如果内联 SQL 查询容易受到 SQL 注入攻击,那么 Entity Framework 如何更安全?

我看到的唯一区别是我们使用 LINQ 与 Entity Framework 交互,但内部 Entity Framework 类以某种语言与数据库交互。与内联查询相比,它的安全性如何?

【问题讨论】:

【参考方案1】:

Entity Framework 具有用于参数化查询的内置功能,可防止注入在 SQL 注入中很重要的单引号等字符。只要您使用 ADO.NET 或类似框架以正确的方式参数化和构建查询,内联 SQL 也可以是安全的。

最后,如果您不清理输入并参数化查询,内联 SQL 可能会非常糟糕。 Entity Framework 只是在幕后为您完成所有这些工作,使其本质上更安全。

【讨论】:

以上是关于内联 SQL 查询和实体框架触发的查询有啥区别?的主要内容,如果未能解决你的问题,请参考以下文章

SQL中的存储过程,函数,视图有啥区别?

sql语句中嵌套时候用in 和=有啥区别

实体框架查询中新类名和新类名()之间的区别[重复]

在 PL SQL 中使用“执行”和目录执行查询语句有啥区别?

数据库的SQL语句中,嵌套查询和连接查询有啥区别,说的详细的

SQL嵌套子查询和相关子查询的执行过程有啥区别