我是 MVC3 的新手,到目前为止,我一直在使用 Linq to SQL 和存储过程来处理我的应用程序。我不知道是使用 Linq to SQL 还是使用传统的存储过程。我在这里看到了一个博客, http://weblogs.asp.net/jalpeshpvadgama/archive/2011/06/20/petapoco-with-stored-procedures.aspx , 其中在实体框架模型中使用了存储过程。
但不确定哪种方法最适合 MVC3 应用程序?
我是 MVC3 的新手,到目前为止,我一直在使用 Linq to SQL 和存储过程来处理我的应用程序。我不知道是使用 Linq to SQL 还是使用传统的存储过程。我在这里看到了一个博客, http://weblogs.asp.net/jalpeshpvadgama/archive/2011/06/20/petapoco-with-stored-procedures.aspx , 其中在实体框架模型中使用了存储过程。
但不确定哪种方法最适合 MVC3 应用程序?
两种方法的概述:
Linq 到 Sql:
Linq to Sql 为您构建 sql。您可以大致了解您的 sql 将是什么样子,但是如果您对 DB 进行更复杂的调用,则出于性能目的控制 sql 的结果将变得更加困难。
可以按照本文查看生成的 Sql 代码,但是调整 sql 会变得有点麻烦,因为您必须运行代码才能查看生成的 sql。
PetaPoco:
使用 PetaPoco(请参阅完整文档),您仍然可以使用实体来更新您的表(对于简单的 crud 操作很有用)。此外,您可以简单地为其添加一个存储过程名称,这样您就可以在 SQL Server Management Studio 中专注于您的 SQL 代码,从而轻松进行调整。
我的意见:
我发现使用 PetaPoco 比使用 Linq to Sql 更方便,因为您可以更好地控制 sql 代码。
还有一些性能方面的考虑。PetaPoco 似乎更快。
没有“MVC3 应用程序的最佳方式”。这完全取决于您的应用程序的要求和您自己的品味。
有各种各样的解决方案,从手动编码查询到 PetaPoco 和 Dapper 等微型 ORM,以及您可以想到的所有花里胡哨的完整 ORM,例如 nHibernate 和 Entity Framework。
不过,您的应用程序的最佳解决方案很可能是这些的混合。我发现对于大多数常见的数据访问场景,ORM 运行良好。如果您需要更高的性能或对查询的控制,Micro ORM 是您的最佳选择。你可以随意混搭。
您可能会发现这篇关于 StackOverflow 的数据访问策略的博客文章很有趣。