mas*_*ani 3 c# linq sql-server linq-to-sql
我想将我的所有db存储过程转换为linq到sql表达式,这项工作是否有任何限制?你必须注意到我的数据库中有一些复杂的查询.
Linq to SQL不支持SQL Server的几个功能:
hierarchyid;OUTPUT INTO条款;MERGE声明;SET ROWCOUNT(ROW_NUMBER不是最有效的);DENSE_RANK和NTILE;ROLLUP,CUBE,COMPUTE,等.STDEV,VAR等PIVOT和UNPIVOT查询;有了这些东西,你可以在技术上编写自己的扩展方法,解析表达式树并实际生成正确的SQL,但这不适用于上述所有,即使它是一个可行的选项,它通常只是更容易编写SQL并调用命令或存储过程.还有一个原因是,DataContext给你的ExecuteCommand,ExecuteQuery和ExecuteMethodCall方法.
正如我在过去所说的那样,像Linq to SQL这样的ORM是很好的工具,但它们不是银子弹.我发现对于规模较大,数据库较多的项目,L2S通常可以处理大约95%的任务,但对于其他5%,你需要编写UDF或存储过程,有时甚至DataContext完全绕过它们(对象跟踪不会与服务器触发器玩得很好).
对于较小/较简单的项目,很有可能您可以在Linq to SQL中执行所有操作.你是否应该完全是一个不同的问题,而且我不打算在这里回答.
| 归档时间: |
|
| 查看次数: |
613 次 |
| 最近记录: |