我正在阅读Linq,我看到了这一段:
“事实上,在使用.NET 3.5 / C#2008进行编程时,您可以(并且将)肯定直接使用ADO.NET,XML命名空间,反射服务和各种集合类型。但是,基本问题这些API本身就是一个孤岛,它提供的整合方式很少。 确实,(例如)可以将ADO.NET DataSet保存为XML,然后通过System.Xml命名空间对其进行操作,但是, 数据操作仍然相当不对称 。 LINQ API试图提供一致的,对称的方式,程序员可以从广义的术语中获取和操作“数据”。使用LINQ,我们可以直接在C#编程语言中创建称为查询表达式的实体。这些查询表达式基于众多查询运算符,这些运算符有意设计为与SQL表达式看起来非常相似(但不完全相同)。
问题1:有人能告诉我它们对称数据操作的意义吗?
问题2:任何人都可以为我解释这一点:许多开发人员发现很难从强类型面向对象的c#世界转移到数据层,其中对象是二等公民 (这也是LINQ to SQL的一篇文章)我知道强类型的面向对象意味着什么,但我不知道句子的第二部分是什么!谢谢你:):)
答案 0 :(得分:1)
我认为作者在讨论对称性时,实际上只是谈论一致性。
他指出,用于处理不同类型数据的各种LINQ前API都非常不同。 LINQ试图在不同类型的数据上提供一致的编程模型。因此,LINQ为数据库中的数据,XML文档中的数据或.NET集合引入了一种对称性。
至于第二个问题,程序员通常更容易在面向对象的模型中处理数据和逻辑。然而,该数据通常存储在关系数据库中,该数据库具有基于集合理论表示数据的非常不同的方式。因此,将对象保存到关系数据库并再次检索它们并不是一个平滑的过程,尽管有一些工具可以帮助,LINQ就是其中之一。