所有,
所以我已经将LINQ-to-sql中的所有选择查询转换为使用CompiledQueries来加快速度.到目前为止,对于select语句来说效果很好,但是我还没弄清楚如何预编译insert,update或delete语句.
当然,当您在LINQ-to-sql中插入,删除或更新时,必须使用对象模型.但显然它在某处生成一个查询,这对于预编译和存储在静态成员中会很好.
这可能吗?什么是LINQ性能,如更新,删除和插入时,它没有预编译?我可以看到它比选择快得多,因为他们在下面做的更简单,更少“动态”……
有一个很大的不同. Linq-To-
sql选择
查询可以是大型复杂表达式树.这些可能需要一段时间“编译”.在这种情况下,合并到一些可以针对
sql Server运行的T-
sql.因此,缓存操作的结果以便可以重复使用是有意义的.
但是,其他Delete,Update和Insert是简单的操作,不需要将表达式树转换为T-sql(LINQ本身就是查询).非常不幸的是,我们已经接受过训练,可以将sql代码视为“查询”来执行这些其他操作,我们并不是要求任何信息.
这些操作仅由DataContext定义,而不是由LINQ定义,因此已经编译了执行这些函数的代码.