是否独立编写eSQL数据库?

时间:2010-04-06 22:45:02

标签: entity-framework linq-to-entities entity-sql

使用EF我们可以使用LINQ来读取相当简单的数据(特别是使用流畅的调用),但除非我们自己编写eSQL,否则我们的控制力会减少。

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

1 个答案:

答案 0 :(得分:1)

  1. ESQL通常与数据库无关,因此可以像LINQ to Entities一样使用它。 但请注意,它有更严重的限制。它没有DML,DDL和DB特定的功能。
    ESQL的主要缺点是,即使包含几行的简单查询也可以转换为特定DBMS的异常SQL查询,因此应该检查生成的SQL是否合适并分析它是否是最佳的。
  2. ESQL不会直接在数据库上执行,而是会被转换为SQL。 EF安全性讨论通常从连接字符串保护开始,然后讨论模型安全性,并且仅在分析了查询保护之后。由开发人员决定是否应该保护特殊查询。