gpt4 book ai didi

c# - 处理数据库数据的良好 OOP 设计原则

转载 作者:太空狗 更新时间:2023-10-29 23:16:53 24 4
gpt4 key购买 nike

就目前而言,这个问题不适合我们的问答形式。我们希望答案得到事实、引用或专业知识的支持,但这个问题可能会引起辩论、争论、投票或扩展讨论。如果您觉得这个问题可以改进并可能重新打开,visit the help center为指导。




9年前关闭。




我觉得我在问一个非常基本的问题,我想我应该能够在互联网上的某个地方找到一个好的答案。但我已经厌倦了搜索,只找到了几根干骨头。最重要的是,我现在害怕这个问题可能太主观了:)

无论如何,问题来了。在面向对象的程序中访问、处理和操作关系数据库中的数据被认为是什么好的做法?到目前为止,在我的编程中,我一直在以一种程序化的方式处理数据库数据。我目前正在积极尝试改善我的 OOP 习惯,但我不确定如何处理这个问题。

这是我正在使用的场景之一。我有一张表,里面有许多制造工作条目。我正在编写(改进)的应用程序对每个作业执行大量处理。例如,我遍历表中的每一行并执行以下操作:

  • 将截止日期发布到 Google 日历
  • 在给定目录中创建作业唯一的文件夹
  • 为作业创建工作订单
  • 为工作创建契约(Contract)简介
  • 管理旅行证件
  • 将信息发送给几个人
  • 等等,名单还在

  • 你明白了。每项工作都完成了大量处理。目前,我拥有被大多数优秀程序员称为一堆很棒的意大利面条式代码的东西。也许它不是那么糟糕,但几乎。我使用 for each 循环遍历表中的每一行,并按顺序对每一行执行每个操作。我不喜欢目前的设计方式,但我不知道如何做得更好。

    我希望我是否可以有一个名为“Jobs”的简洁对象,它可以实现作业的所有属性并提供执行每个操作的方法。然后我什至可以制作一个自定义集合来处理我的工作,整个世界都会变得更加光明。整个解决方案将更具可读性,更易于维护,更容易添加对每个作业执行的操作(经常发生)等。

    但我的问题是我不知道如何在花哨的对象和数据库之间建立连接。我应该使用某种对象关系映射吗(我阅读了关于此的各种混合意见)?我是否只是遍历所有行并将它们转换为在集合中累积的对象?还是以程序方式继续进行此类项目的最佳选择?我会喜欢你的回答和意见。

    我以抽象的方式对有关此主题的信息感兴趣。换句话说,我想知道如何处理这样的一般情况。不仅仅是特定于我给出的例子。但当然,细节也很棒。我使用 VS 2010 使用 Visual Basic 和 C# 进行大部分编程。

    最佳答案

    查看存储库模式。这是一种以有意义的方式将数据访问与业务处理分开的好方法。应用这种模式我有几个项目:

  • 实体 - 存储东西的对象
  • DataAccess - ORM DbContext 和 ADO.NET 包装器
  • 存储库 - 包装查询以将强类型函数呈现给应用程序的其余部分
  • TheRest - 其他项目/层:业务、GUI 等

  • How to use Entity Framework context with dependency injection?对每种项目类型的良好描述

    关于c# - 处理数据库数据的良好 OOP 设计原则,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10594654/

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