gpt4 book ai didi

c# - 从数据库面向对象?

转载 作者:太空宇宙 更新时间:2023-11-03 21:55:23 25 4
gpt4 key购买 nike

我做过很多 ADO.NET EF 编程,但从来没有一个对象/表继承自另一个对象/表。

如果我有一个包含三个表(正方形、三角形、多边形)的现有数据库,并添加一个 ADO.NET 模型来让我使用 Linq 访问这些表,我如何确定正方形和三角形对象派生自多边形?

架构中是否要求父表中的列存在于子类的列中?

如果我想重写像 ComputeArea() 这样的方法怎么办?我会使用扩展方法还是有更好的方法?

我的基本问题是面向对象编程如何/在哪里/是否为 ORM 带来值(value),但我意识到在 stackoverflow 上不鼓励值(value)/主观问题。

最佳答案

How do I establish that the square and triangle objects derive from polygon?

你最好看看这个:

Implementing Table Inheritance in SQL Server

And then what if I want to override a method like ComputeArea()? Would I use an extension method or is there a better way?

扩展方法应该可以解决问题,最好让您的实体表现得像值对象。

My underlying question is how/where/if object oriented programming brings value to ORM, but I realize value/subjective questions are discouraged on stackoverflow.

这正是它(ORM)存在的原因,也就是所谓的对象关系映射。所以它确实带来了值(value):更简洁的代码,易于编写,易于重构。

话虽如此,恕我直言,当用户对底层存储技术没有任何经验时,ORM 工具的使用就无法达到应有的性能,这不一定是因为技术,而是因为你使用它的方式(关于从面向对象和关系世界使用连接的方式)或者你想做的事情,就是这样,继承。这些事情在 OO 世界中非常简单,但在关系数据库中不是必需的。

关于c# - 从数据库面向对象?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12537407/

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