使用SQL在OOP C#应用程序中使用数据访问层

问题描述 投票:-1回答:1

我来自一个环境,在那里我被教导使用物体并在可能的情况下采用OOP技术,我想它已经引导我走上一条特定的道路,并影响了我的产品设计很长一段时间。

通常,我的数据访问层将有许多映射到数据库表的类,因此如果我需要显示公司列表,我将有一个'Company'对象和一个名为'company'的数据库表。公司对象知道如何使用'SELECT * FROM公司WHERE id = x'类型查询从数据库读取DataRow实例化自身。因此,当我显示公司列表时,我将填充公司对象列表并显示它们。如果我需要显示公司的属性,我已经加载了数据。

有人提到'select *'是不受欢迎的,我的对象方法可能效率低下,但我遇到的问题是确定使用数据库表和对象的另一种方法,如果你只读取特定字段就可以工作 - 对象就是这样没有人口。

是的我可以更改列表直接从数据库中查询所需的字段并显示它们但这意味着我的UI代码需要更紧密地链接到数据访问代码 - 我个人喜欢将对象分离的程度分离层。

总是愿意学习 - 我自己工作所以不要总是快速掌握最新的技术或方法,所以任何评论都欢迎。

c# sql data-access-layer
1个回答
0
投票

我不认为我可以向你展示一个明确的解决方案,但我会尝试指出你正确的方向(因为它更像是一个理论问题)。

根据您在应用程序中遵循的设计模式,您可以将数据访问层与UI分离,并且仍然遵循此规则,即在不需要时不提取所有列。我的意思是,为应用程序选择正确的设计模式可以为您带来这种简单性。

例如,也许您可​​以将对象的不太详细的版本解释为对象本身(老实说,我认为这不是一个好方法)。

此外,我将评论非常流行的rails ORM ActiveRecord仅在使用数据时从DB获取。也许您可以使用类似的逻辑来跟踪何时使用哪些列,以便您可以限制查询。

© www.soinside.com 2019 - 2024. All rights reserved.