LINQ是否比手工制作SQL查询提供任何好处?

时间:2014-05-11 10:15:35

标签: asp.net-mvc linq entity-framework

我想了解Entity Framework。要使用它查询数据库,我必须学习LINQ。我的问题是:

LINQ是不是太复杂了?我没有看到任何使用它,相反我认为手工制作SQL查询要好得多。

我花了很多时间学习ASP.NET WebForms,结果发现我担心的实际上就是那里,所以这是浪费时间。看起来LINQ在ASP.NET WebForms中犯了同样的错误,试图通过为他呈现html并将状态强加于HTTP的无状态性来促进开发人员。

那么,关于这个LINQ和实体框架可以做什么的任何见解,其他人不会?

2 个答案:

答案 0 :(得分:1)

我还来自多年使用ASP.NET Web表单的背景。一旦介绍到MVC和剃刀,它就像立即释放出一些网络形式,控件以及感觉像复杂的客户端/服务器模型的硬件工作一样随身携带。

LINQ和Entity Framework不是MVC的一部分。 LINQ是一个属;目的查询语言,适用于从简单字符串处理到复杂数据处理的多个级别。 LINQ也可以与lambda表示法一起使用;我发现后者更容易,模式更自然。

EF允许您从代码中开发所有数据库组件。我发现最初离开SQL非常奇怪,但我很高兴能够进行转换。

我认为你在问一个哲学问题。我在20世纪60年代末开始编程,并看到了许多过渡和技术变化。我发现这种变化与任何变化一样有价值。

答案 1 :(得分:0)

WebForms并不那么糟糕。它确实完成了它的构建:抽象 HTTP对WinForms开发人员的无状态的模糊性,因此他们可以在不改变WinForms工作流程的情况下进入Web时代。

实体框架和其他ORM提供相同级别的抽象。您通常不想手动编写SQL,连接到数据库,提取查询结果并将其映射到对象中。这正是实体框架为您所做的,是的,您必须学习LINQ来进行查询(尽管您can still use SQL)。

您可以使用更多LINQ,它不以任何方式与数据库绑定。反过来说:EF允许您在静态类型代码中表达您的查询,在运行时,这些查询将转换为适当的SQL。