Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/334.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/21.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 关系数据库与面向对象语言_C#_.net_Linq - Fatal编程技术网

C# 关系数据库与面向对象语言

C# 关系数据库与面向对象语言,c#,.net,linq,C#,.net,Linq,在典型的ASP.NET web应用程序体系结构中,我们使用诸如C#之类的OO语言和诸如SQL server之类的关系数据库来处理数据 我在读一本关于Linq的书,书中说“问题是OO编程语言和关系数据库之间存在差距” 作者到底想暗示什么 编辑: 谢谢你的回答。我不确定我是否理解LINQ将如何解决这个问题。我可能错了,但LINQ似乎是用于数据库通信的API,就像ADO.NET一样,它们是非常不同的数据模型和处理方式。这是一场宗教争论,没有任何让步,也没有任何怜悯之心 这一切都在这里:关系数据库管理系

在典型的ASP.NET web应用程序体系结构中,我们使用诸如C#之类的OO语言和诸如SQL server之类的关系数据库来处理数据

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

作者到底想暗示什么

编辑:
谢谢你的回答。我不确定我是否理解LINQ将如何解决这个问题。我可能错了,但LINQ似乎是用于数据库通信的API,就像ADO.NET一样,它们是非常不同的数据模型和处理方式。这是一场宗教争论,没有任何让步,也没有任何怜悯之心


这一切都在这里:

关系数据库管理系统的基石之一是规范化——就我的观点而言,规范化永远不会在多个地方有相同的数据位

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

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


这是一个复杂的问题。

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

这导致了非常不同的模型,在某些领域是不兼容的。这就是所谓的对象关系阻抗失配

Ted Neward写了一篇很好的文章,叫做。如果你想的话,你可以忽略越南的大部分


至于LINQ是如何适应这个等式的:它并不能解决不匹配的问题,但它提供了一种使与数据库的通信更容易的方法,至少减轻了一部分痛苦

你说这是宗教争论是什么意思?这是一句谚语(不是字面意思)。他的意思是,双方都有人对他们的技术“着迷”,就好像这是他们的宗教一样。双方都有着强烈而不妥协的观点,因此存在着激烈的争论。这些辩论通常充满了FUD(恐惧、不确定、怀疑)和不合逻辑的指控。Windows vs.Linux是另一个“宗教争论”,我知道什么是宗教争论:)我只是想知道这个争论到底是关于什么的。不匹配问题的假设解决方案?如果是,有什么解决办法?@Rik:你在后面的回答中提到了阻抗不匹配,然后在一篇文章中以越南战争为例。我用了宗教:你用了一个冷战的比喻。你的意思是错配本身就是一个宗教论点?就不会有一个全面的例外解决方案的意义而言?编程中的宗教争论通常涉及哪种技术“更好”,所以我有点困惑。是的,LINQ to SQL是使用ADO.NET实现的。但LINQ to Object并非如此。它正在调用对象数组(集合)上的方法。而且它仍然具有与LINQ to SQL相同的API。