使用Linq是否会在以后阶段维护/升级我的项目成本更高?
在我使用存储过程之前,在代码投入生产后很容易修改。
我正在为拥有大量内联sql的遗留应用程序的客户工作。他们已经付钱将这些存储过程用于需要快速响应时间的应用程序。他们对使用Linq看到的内容并不感到兴奋,因为它看起来像是内联sql。
Linq是否等同于内联sql?我知道Linq会让我的生活变得更轻松,但一年或两年之后呢?
答案 0 :(得分:2)
只要表达更清晰,更容易理解,那么我很确定将来会更容易维护。
答案 1 :(得分:2)
我发现使用实体框架的唯一缺点是,如果您需要进行紧急更改(比方说),您正在查看代码更改,而不仅仅是修改存储过程。对于我们的环境,将脚本更改为数据库比推出新代码要容易得多。所以它在某种程度上取决于你在你的环境中所喜欢的,推动一个新的.dll,或推动存储过程的改变。
至于可维护性,我们已经使用Entity Framework很长一段时间了,没有升级/可维护性问题。它易于编写,易于维护,如果您正确编写Linq,则易于更新/更改。
答案 2 :(得分:1)
在所有内容基于proc存储的应用程序中,新功能必须进行编码和编写脚本 - 这可能很难推出。使用更新的处理方式通常可以是使用不同的linq表达式公开新函数的情况 - 创建新的存储过程和升级脚本的痛苦消失了。 (当然代码仍然需要推出..)
在我的选择中,速度可以忽略不计 - 存储过程肯定会更快,EF并不总能提供最好的sql,但是从它可以简化生活:如果我有一个中间/数据层通过ID返回客户,我想通过名字获得客户;我需要一个新的方法,新的存储过程,脚本来推出这个,等等。 使用EF,我可以添加一个新方法。