我要说的是,我对很陌生。基本上,我对编程还是比较陌生的。
无论如何,我想学习并使用LINQtoSQLto一个使用.NET 2.0框架构建的项目。该项目使用存储过程访问数据库(前端服务器上没有动态SQL查询)。LINQ到SQL似乎是存储procs的一个很好的替代方案,但是将它引入我的项目将打破‘分离关注’的原则。最好不要破坏这些原则,在需要时只编写更多的存储过程吗?还是有一种在不破坏原则的情况下使用LINQ的方法?
通常,我发现在不破坏项目一致性的情况下,很难在遗留项目中添加新的技术和工具。
发布于 2009-08-18 21:52:39
拥有通过SQL而不是通过存储过程与数据库服务器交互的代码并不违反关注点的分离,只要代码被很好地模块化,LINQ部件只关心数据输入/检索,并且不与其他任务(关注点)混在一起。LINQ使用不会破坏任何原则。
现在,在从一开始就以这种方式编码时,修改代码不使用SPs可能不是一项小任务,而且除了学习LINQ之外,最终可能没有任何真正的好处。
发布于 2009-08-18 21:52:02
实际上,LINQ对SoC有很大帮助。与传统的基于sproc的DAL相比,它将使用SQL与域对象分离开来。拥有一组调用存储过程的方法是一种失败的尝试--最小化而不是消除DAL和业务逻辑之间的接触点。LINQ库成为您的DAL,您可以自由地操作一堆愚蠢的对象,而不需要与任何数据备份直接关联--它的另一个好处是能够使用LINQ表达式直接针对您的域对象进行表达,而不是依赖预先确定的存储过程的排列。
发布于 2009-08-18 22:26:31
如果这个项目是一个大型的项目,并且使用了很多的链轮,那么用LINQ替换它的链轮并不是一个明智的想法。理由应该是显而易见的,为什么这样做是不谨慎的。然而,向前看,这并不意味着您不应该为LINQ实现一个层。这就是我对我的一些大型遗留应用程序所做的。实现和使用LINQ是非常值得的,但是重写旧的链轮以使用LINQ是不值得的(也不值得冒险)。
https://stackoverflow.com/questions/1296722
复制相似问题