1

使用 EF,我们可以使用 LINQ 读取数据,这相当简单(尤其是使用流利的调用),但除非我们自己编写 eSQL,否则我们的控制较少。

  1. 编写 eSQL 实际上是与数据存储无关的代码吗?
    那么如果我们决定更改数据存储,是否仍然可以使用相同的语句?
  2. 在代码中编写 eSQL 字符串是否会造成任何严重的安全威胁,类似于在 C# 代码中将 TSQL 语句编写为纯字符串?这就是推荐SP的原因。我们是否仍然可以将 eSQL 脚本移到代码之外并使用其他一些技术来使它们更安全一些?
4

1 回答 1

1
  1. ESQL 通常是独立于数据库的,因此它可以像 LINQ to Entities 一样使用。但请注意,它有更严重的限制。它没有 DML、DDL 和 DB 特定的能力。
    ESQL 的主要缺点是即使是包含几行的简单查询也可能被转换为特定 DBMS 的巨大 SQL 查询,因此应该检查生成的 SQL 是否合适并分析它是否是最佳的。
  2. ESQL 不会直接在数据库上执行,它会被转换为 SQL。EF安全讨论通常从连接字符串保护开始,然后讨论模型安全,再分析查询保护。由开发人员决定是否应保护特殊查询。
于 2010-04-14T08:48:45.967 回答