LINQ vs存储过程与内联查询

时间:2011-09-30 16:21:34

标签: asp.net sql linq-to-sql stored-procedures

我们是一个小团队,致力于在非常紧迫的期限内开发.NET中的大型Web应用程序。我们使用多个数据库(每个客户端一个),因此我们的要求与大多数应用程序略有不同。数据库仅用于此特定应用程序,因此它们与应用程序紧密耦合无关紧要。主要决定因素是发展速度,长期可维护性和安全性。我们正在考虑3个选项:

选项1 - LINQ to SQL

我们都没有任何LINQ经验,但我们一直在研究它,它似乎是一个不错的选择,也不是很难学。值得在紧迫的期限内学习新方法的风险吗?

选项2 - 存储过程

看起来像使用多个数据库设置维护可能是一场噩梦(或者它会是什么?)并且它可能会降低开发速度以便在另一个环境中工作,因为我们没有专门的数据库开发人员。基本的CRUD查询将由代码生成器生成,这是一个优势。

选项3 - 内联查询

这种方法发展最快,但我知道现在人们普遍反对硬编码查询,我担心长期存在可维护性问题可能会让我们受苦。代码生成器将生成基本的CRUD查询。

如果我们缺少任何因素,请告诉我。什么解决方案似乎最适合这个项目?

2 个答案:

答案 0 :(得分:5)

如果你有一个紧迫的截止日期,不要尝试新的东西。让开发人员在家里和业余时间研究实体框架,并在下一个项目中尝试。同时做你最了解的并且过去成功使用过。

如果内联查询在DAL程序集中解耦,那么内联查询也不错。

答案 1 :(得分:1)

由于@Hasan Khan涵盖了有关SQL的主要答案。我要抛出一个不同的答案。另一种选择是考虑使用Noven数据库RavenDB。它具有租户数据库的概念,其中固有地融入其中。根据您的要求,这听起来像是预期的目标。