LINQ主要用于Select语句吗?

时间:2010-02-14 19:01:56

标签: c# linq

我认为LINQ在select语句和制作新对象/记录方面感觉最好。对于更新和删除,我觉得它不是很容易或方便。任何对LINQ使用有任何看法的人?

3 个答案:

答案 0 :(得分:3)

从技术上讲,LINQ代表“语言集成查询”,因此根据定义,它是指支持选择,过滤,投影等的语言扩展。它不一定与更新/删除/插入/等有关。 / p>

话虽如此,LINQ更宽松地用于指代各种技术,如LINQ to SQL,LINQ to XML等,它们可能有也可能没有自己的机制来执行更新/删除/插入/等。因此,例如,使用LINQ to SQL,数据上下文可以跟踪更新并执行删除,插入等,但这实际上与一般意义上的“LINQ”无关。但它确实可以很容易地生成一组实体,您可以在其上执行这些CRUD操作。

但即使如此,如果您使用LINQ to SQL来选择记录然后尝试使用直接ADO.NET来执行更改操作,那将会非常痛苦。你只是反对粮食,可能没什么好处。如果您需要使用复杂的TSQL来进行更改,LINQ to SQL / Entities确实允许您调用存储过程。

答案 1 :(得分:2)

我对LINQ的主要用途是作为一种声明性技术,用于生成高效,可读,无错误的迭代代码。如果我使用此代码测试,聚合或更新数据,或者删除任何一个,对我来说无关紧要,只要我的删除操作实际上没有修改我正在迭代的集合。我发现LINQ在所有这些场景中同样有用。

但我根本不使用LINQ to SQL。我从来没有找到它的好用。

答案 2 :(得分:1)

我不能代表LINQ to SQL,但总的来说我同意。有关此问题的详细讨论,请参阅“foreach” vs “ForEach”