繁体   English   中英

LINQ或ADO.net实体框架 - 要学习哪些内容?

[英]LINQ or ADO.net Entity Framework - which to learn?

一点澄清:我正在浏览Julia Lerman在实体框架上的Oreilly标题,我感到非常困惑。

我有Charlie Calvert的基本LINQ,但是在我与Lerman的书的10分钟会话中,发现LINQ是LINQ to SQL,它的DataContext对象似乎功能不足......

虽然实体框架是未来,但它有一个叫做Entity SQL的东西,在我眼里看起来就像Transact-SQL。 现在我的眼睛可能有点生疏,但问题是:

由于实体框架是微软支持的主要支柱,因此学习LINQ to SQL是否有任何意义

        var numberGroups =
            from n in numbers
            group n by n % 5 into g
            select new { Remainder = g.Key, Numbers = g };

我是否认为Entity SQL和LINQ是两种不同的技术,实体SQL实际上是否使用LINQ?

发布了我收到的许多回复:

好伙计,我是新手,所以这次我正在编辑我的答案;-)非常感谢您的全面,快速和非常有帮助的答案。 关心MereMortal

LINQ!= LINQ-to-SQL

LINQ是一个概念,包括一些语言支持。 有许多实现 - LINQ-to-SQL就是其中之一,ADO.NET数据服务,实体框架的LINQ到实体,LINQ到对象,LINQ到SQL,LINQ到亚马逊,DbLinq等。

你仍然使用LINQ with Entity Framework; 实际上,LINQ-to-Entities是首选,提供编译时静态检查。 实体SQL只是用于查询EDM(实体数据模型)的另一种机制(除了LINQ到实体之外)。

ESQL有三个主要原因:

  • 当LINQ-to-Entities仍在建设中时,它是早期预览中的唯一选择
  • 它可以在某些情况下不存在对象模型来使用,例如报告服务
  • 少数情况下ESQL更具表现力

对于其他一切,LINQ应该是您使用Entity Framework的工具。

LINQ是语言功能的通用术语,允许通过某种数据存储在C#或VB.NET中编写查询。 有LINQ to SQL,LINQ to Entities,LINQ to Objects等。

LINQ to SQL密切建模物理数据库结构。 它为数据库中的每个表生成一种类型。 如果数据库发生更改,则需要更改LINQ to SQL代码。

LINQ to Entities更紧密地模拟概念数据库设计。 它允许您映射到物理数据库,但是,例如,允许您创建一个包含Person和Contacts表中数据的Person实体。 这允许您的呼叫者根据数据的含义而不是数据的实现方式进行思考。

此外,微软已经表示,与LINQ to Entities中的开发相比,LINQ to SQL的未来发展将受到限制。 鉴于增加的灵活性以及LINQ to SQL不会获得更多增强的事实,我将使用LINQ to Entities和Entity Framework。

正如其他人所说,你可能意味着Linq to SQL vs Entity Framework。

两者都适用于SQL Server,但只有Entity Framework适用于其他数据库。 此外,LINQ to SQL或多或少地被折旧了。 那么请使用Entity Framework。

Linq是一种编程结构,允许您查询对象

我认为你正在谈论一个Linq to Sql。

你总是可以使用linq来查询EF对象......

哇哇 在那里慢下来。

简答:实体框架

更长的答案:

LINQ to SQL和Entity Framework是数据访问技术。

据MS称,Linq是

LINQ是.NET Framework的一组扩展,包含语言集成的查询,设置和转换操作。 它使用本机语言语法扩展C#和Visual Basic,并提供类库以利用这些功能。

来自: http//msdn.microsoft.com/en-us/netframework/aa904594.aspx

LINQ to SQL和Entity Framework都有Linq提供程序,在查询它们时允许使用这种令人敬畏的语法。

我在12月2日和3日进入蒙特利尔的微软TehcDays,他们说,他们将在几年内不再支持LINQ to sql,所以你最好开始学习LinQ to entity(实体框架)。

实体框架具有LINQ to Entities,因此您也可以针对EF执行非常相同的查询。 而我的回答将是对EF投入更多,因为上调EFv4似乎很有希望。

根据我的理解,EF还没有为黄金时间做好准备,并且它不支持许多在LINQ2SQL中如此容易工作的LINQ结构。

如果您可以为您的应用程序提交SQL Server,我今天说,学习LINQ2SQL。 使用LINQ时,您将有更多查询功能。

我打赌当EF准备就绪时,对你来说这将是一个更容易的转换,因为查询语言应该是可转移的。

祝好运。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM