实体 SQL 的目的是什么,我的意思是如果你有 Linq to Entities,为什么需要编写字符串查询,是否有性能原因或其他原因?
LINQ to Entities无法访问数据库的每个功能。有时候需要“深入”数据库进行高级查询,以便在第一时间完成查询或者改进LINQ to Entities系统对查询的糟糕选择。
尽管如此,我认为应该首先使用LINQ to Entities。如果性能成为问题,或者您有更复杂的问题,那么可以将该问题部分封装在存储过程中并调用它。现在没有理由使用字符串作为查询的基础。
我认为(或许是愤世嫉俗地认为),ESQL的“真正”目的是“它早于LINQ”。
关于Godeke修复非最优查询的观点,我还没有看到一个我不能通过更改LINQ表达式来修复的查询。ESQL和L2E最终都成为CCT,因此SQL生成管道是相同的。