关系数据库和OO语言

在典型的ASP.NET Web应用程序体系结构中,我们使用诸如C#之类的OO语言和诸如SQL服务器之类的关系数据库来获取数据。

我正在读一本关于Linq的书,上面写着“问题是OO编程语言和关系数据库之间存在差距”

作者究竟想要暗示什么?

编辑:谢谢你的答案。 我不确定我理解LINQ如何解决这个问题。 我可能错了,但似乎LINQ是用于数据库通信的API,就像ADO.NET一样

它们是非常不同的数据模型和做事方式。 这是一个非常宗教的论点,没有任何季度,也没有任何怜悯。

一切都在这里: 对象关系阻抗不匹配

面向对象编程是关于有效地建模行为。 关系模型是关于有效地建模数据。

这导致了非常不同的模型,这些模型在某些区域是不兼容的。 它被称为物体关系阻抗不匹配。 谷歌吧 。

特德纽瓦德写了一篇相当不错的文章,称为计算机科学的越南 。 如果你愿意,你可以忽略大部分的越南部分。

至于LINQ如何适应这个等式:它并没有解决不匹配问题,但它提供了一种方法,可以更轻松地与数据库进行通信,从而减轻至少部分痛苦。

RDBMS的一个基石是规范化 – 为了我的观点,从来没有相同的数据位不止一个地方。

对于对象,可以合理地假设您的SalesInvoice obj可能由多个发票行对象和客户对象,交货地址等以及随之而来的方法组成。

在一个和另一个之间跳跃是很困难的。 以交货地址为例,我们将其存储在销售发票表中,如果与客户相同,如果不同,该怎么办? 我们有送货地址表吗?

这是一个复杂的问题。