gpt4 book ai didi

asp.net-mvc-3 - 使用 ADO.NET 为 MVC 3 应用程序设计 DAL 的最佳方法?

转载 作者:行者123 更新时间:2023-12-01 23:13:57 25 4
gpt4 key购买 nike

我看到大量带有 Entity Framework 的 MVC DAL 示例,但没有看到 ADO.NET 和存储过程的示例?似乎有一种趋势是使用“Repository”模式和“UnitofWork”来创建 DAL,类似于:

http://www.codeproject.com/Articles/207820/The-Repository-Pattern-with-EF-code-first-Dependen

我如何将此代码库从 EF 迁移到 ADO.net 存储过程?

最佳答案

How would I migrate this codebase away from EF to ADO.net stored procedures?

您得到的答案很少,因为我们大多数人都在远离存储过程。

两个最大的原因是:

控制业务逻辑

将所有业务逻辑放在一个地方可以更轻松地阅读代码,从而更轻松地维护应用程序。也就是说,您在编程时会获得更好的流动性。

如果您将业务逻辑分散在 SP 和 .NET 代码之间,则每次在代码和 SP 之间切换时都必须进行心理转换(存储状态)。

更容易测试

测试很重要。特别是对于有维护计划的应用程序。

对于 .NET,有多种工具可用于测试您的代码。一切都可以轻松地进行隔离测试(没有外部依赖项),并且有几篇文章描述了不同的测试技术。

单独测试存储过程很困难。


神话:存储过程比 SQL 查询更快。

与几年前(SQL Server 2000 及以下版本)相比,今天的存储过程没有参数化查询(即使用参数作为 @userName 的查询)的性能提升。它们实际上应该具有类似的性能,因为现在也为参数化查询保存了执行计划。

但是,如果您的 SP:s 中有处理多个查询结果的逻辑,它们确实会获得更好的性能,因为您的应用程序和数据库服务器之间不需要往返。但是可以很容易地通过不同的应用程序架构进行补偿。

结论

走那条路之前要三思。这通常是不值得的。您在更少的 CPU 周期内获得的(金钱)通常比创建和维护应用程序所花费的时间少得多。

也就是说,可以按照此处的说明使用存储过程:http://msdn.microsoft.com/en-us/data/gg699321.aspx

关于asp.net-mvc-3 - 使用 ADO.NET 为 MVC 3 应用程序设计 DAL 的最佳方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16723041/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com