最近我在使用LINQ。但面对面试时,我无法解释:
什么是LINQ?
此外,由于引入了LINQ?
从采访的角度来看,我该如何回答这些问题?
答案 0 :(得分:8)
LINQ是.NET框架的一组扩展,支持语言集成查询。这基本上意味着我们可以使用相同类型的语法来查询任何数据集 - 无论是SQL数据库,Active Directory还是XML文件 - 我们可以使用相同的语法来执行查询。
LINQ用于与不同数据源通信的机制是通过提供程序 - 如果愿意,您可以编写自己的提供程序,但默认提供程序是LINQ到对象,LINQ到SQL和LINQ到XML 。再次 - LINQ允许您使用相同的语法从SQL数据库,XML文件或内存中对象中检索数据。
LINQ不会取代DataSet - 实际上,您可以将LINQ与数据集结合使用。 DataSets与LINQ争论的唯一原因是LINQ-to-SQL是一个ORM。这意味着我们现在可以选择内置技术与数据库进行通信 - 以前的数据集将是默认的内置选项,现在您也可以选择LINQ-to-SQL。
答案 1 :(得分:2)
Nice introduction to LINQ只需从那里挑选一些最重要的序列来解答你的面试问题。至于第二个问题,不推荐使用DataSet,LINQ只是添加了一种可以处理数据的不同方式。
答案 2 :(得分:2)
除了@RaYell说你应该问你的面试官他们在询问是否弃用DataSet时是否讨论LINQ或LINQ to SQL。
答案 3 :(得分:1)
实体框架使用OOD方法替换LINQ to SQL,使用映射层将其屏蔽到数据库。该层使用xml和csql使其能够将数据传递到各种数据库,而不会产生sql的开销。对象不会暴露任何表,也不会期望它,因为目标是抽象以启用映射。这显然与数据集方法不一致。我想如果您像LINQ一样考虑“实体框架到数据集”或“实体框架到XML”,并且通过映射屏蔽这些对象的加载,那么您可以看到每种技术的价值。这种转换似乎是通过LINQ to XML,或LINQ to DATASET,然后进入实体框架。我想补充一点,DataSet允许动态访问表,行,列,我不确定Entity FrameWork是否具有这样的能力,它必须知道数据框架,因此它们是互补技术。