LINQ主要用于Select语句吗?

4

我认为在使用LINQ时,最好使用select语句并创建一个新的对象/记录。对于更新和删除操作,我不认为它真的很容易或方便。有人对LINQ的使用有什么看法吗?


毕竟它是一个缩写,"语言集成查询",它的名称意味着它主要是为此而制作的 :) - Nick Craver
但查询不仅仅是选择吧?更新、删除、插入呢 - 它们不也是查询吗? - marko
2
查询(query)的定义是询问,提出问题以获取信息或知识。插入(Inserts)、更新(Updates)和删除(Deletes)从技术上来说不属于查询... 它们属于数据修改(DML)。 - jrista
真的,你说得对。 - marko
3个回答

3

从技术上讲,LINQ代表“语言集成查询”,因此根据定义,它确实指的是语言扩展,使选择、筛选、投影等操作得以实现。它不一定涉及更新/删除/插入等操作。

话虽如此,LINQ被更加宽泛地用于指代各种技术,如LINQ to SQL、LINQ to XML等,这些技术可能具有执行更新/删除/插入等操作的机制,也可能没有。例如,使用LINQ to SQL时,数据上下文可以跟踪更新并执行删除、插入等操作,但这与单词“LINQ”的通常意义并没有真正关系。但这确实让您很容易生成一组实体,以便进行CRUD操作。

但即使如此,如果您使用LINQ to SQL选择记录,然后尝试使用纯粹的ADO.NET执行更改操作,那将是相当麻烦的。你只是在逆流而行,而且可能并没有多少好处。如果需要使用复杂的TSQL来执行更改操作,LINQ to SQL / Entities确实允许您调用存储过程。


2

我的主要使用LINQ的目的是作为一种声明性技术,用于生成高效、可读、无bug的迭代代码。对我来说,使用这段代码测试、聚合、更新数据或删除数据都没有关系,只要我的删除操作不实际修改我正在迭代的集合即可。我发现在所有这些场景中,LINQ同样有用。

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


1

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接