我是一个ASP.NET n00b,我在我的ASP.NET书中读到,当你编译项目时,你的C#LINQ代码会变成实际的SQL查询。我在网上找不到任何东西来验证这一点;但是,如果它是真的,我想知道存储过程是否是从LINQ查询创建的;如果没有,那么LINQ有什么意义呢?我很困惑为什么知道如何编写SQL的人会花时间学习“有效的C#并且看起来像SQL但不是SQL”的东西......
我看到了一个相关的帖子LINQ queries vs Stored procedures,但它是在2011年写的。
答案 0 :(得分:4)
不,LINQ对数据库的查询不会转换为存储过程。如果底层数据库语言是SQL,它们将转换为SQL,例如SQL Server / Oracle。
你让ORM和LINQ感到困惑。 LINQ不仅仅是查询数据库。它还涉及查询arrays/List<T>
(IEnumerable<T>
)等常规集合。
答案 1 :(得分:0)
除上述答案外,LINQ是.NET Framework的一个特性,它是强类型的,不是特定于实体框架(ORM),甚至是数据库的独立。有不同的LINQ提供程序,即LINQ to Entities负责将LINQ转换为对数据的适当查询并获得结果。
因此,对于那些不了解SQL并希望以对象方式处理表和数据的人来说,这将会大放异彩。