gpt4 book ai didi

.net - 为性能关键的大容量应用程序构建 DAL

转载 作者:行者123 更新时间:2023-12-01 05:47:49 25 4
gpt4 key购买 nike

我正在开发一个大规模性能关键的 asp web 应用程序,其中包含一个非常非规范化的数据库(出于性能原因,大量数据在表中重复)。该应用程序对性能至关重要且大型。几乎没有任何n层设计的感觉。我无法触摸数据库,它是刻在石头上的。

现在我需要构建一些额外的应用程序来访问 c# (.net 3.5) 中非常相同的数据。在这样做的同时,我被要求构建一个新的“核心”,以后可以在转移到 MVC 时使用它,所以我想引入某种数据访问层来保存实体类和一个存储库,负责 crud 操作。

我一直在阅读有关存储库模式和 LinqToSql 的信息,所以我想我知道非常基础的知识。应该构建的新应用程序当然要在 2 周前到期,所以在我开始工作之前,我真的不能花大量时间来创建一个巨大的框架或上课。我愿意每天读一本书,但我需要快速开始。

我的问题是,在考虑将 LinqToSql 和存储库模式作为解决方案时,我是否走在正确的道路上?为什么不使用您最喜欢的代码生成器生成实体并使用断开连接的记录集查询数据库的旧样式?使用 LinqToSql 时,我是否会失去对 sql 查询的控制?我应该担心性能吗?我完全走错路了吗?

我希望我正确解释了手头的问题。如果有任何悬而未决的问题,请随时提出。

最佳答案

有大量的映射工具旨在帮助完成这项任务,但在实用性方面,就可维护性而言,您最好自己做(特别是如果这个数据库模型不太可能改变)。

如果我处于您的情况,我会创建表示您在数据库中存储的内容的通用类,然后为您的数据层创建具有静态方法的类。每种方法只执行应用程序需要的一项任务(即添加、编辑、获取、搜索等),并使用内置的 SQLCommand/SQLDataReader 对象来完成,最好调用存储过程。对于 'get' 类型方法,它们将返回您的第一组类(或它们的列表)。

这个过程将比使用框架/linqtosql 更耗时,但你不会找到比这更好或更灵活的另一种方法(因为你实际上是在编写代码;它不是生成的)。

关于.net - 为性能关键的大容量应用程序构建 DAL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/302196/

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