Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/333.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/linq/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# LINQ或ADO.net实体框架-学习哪种?_C#_Linq_Entity Framework_Entity - Fatal编程技术网

C# LINQ或ADO.net实体框架-学习哪种?

C# LINQ或ADO.net实体框架-学习哪种?,c#,linq,entity-framework,entity,C#,Linq,Entity Framework,Entity,有点澄清:我在浏览Julia Lerman关于实体框架的Oreilly标题时,感到非常困惑 我有Charlie Calvert的基本LINQ,但是从我与Lerman的书的10分钟的对话中,我发现LINQ是LINQ到SQL,它似乎与其DataContext对象等功能不足 虽然实体框架是未来,但它有一种叫做实体SQL的东西,在我看来,它和Transact-SQL一模一样。现在我的眼睛可能有点生锈了,但问题是: 既然实体框架是微软支持的主要工具,那么用它的 var numberGrou

有点澄清:我在浏览Julia Lerman关于实体框架的Oreilly标题时,感到非常困惑

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

虽然实体框架是未来,但它有一种叫做实体SQL的东西,在我看来,它和Transact-SQL一模一样。现在我的眼睛可能有点生锈了,但问题是:

既然实体框架是微软支持的主要工具,那么用它的

        var numberGroups =
            from n in numbers
            group n by n % 5 into g
            select new { Remainder = g.Key, Numbers = g };
实体SQL和LINQ是两种不同的技术,实体SQL实际上使用LINQ吗

发布我收到的许多回复:

好了,伙计们,我对这个还不熟悉,所以这次我正在编辑我的答案;-) 非常感谢您完整、快速且非常有用的回答。 当做
MereMortal

LINQ是一个通用术语,用于描述允许在某种数据存储上用C#或VB.NET编写查询的语言功能。有LINQ到SQL、LINQ到实体、LINQ到对象等

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

LINQ to实体对概念数据库设计的建模更为紧密。它允许您映射到物理数据库,但例如,允许您创建一个人实体,其中包括来自Person和Contacts表的数据。这允许调用者考虑数据的含义,而不是如何实现数据


此外,微软表示,与LINQtoEntities的开发相比,LINQtoSQL的未来开发将受到限制。考虑到灵活性的提高以及LINQ to SQL不会得到更多增强的事实,我会选择LINQ to Entities和Entity Framework。

LINQ是一种编程构造,允许您查询对象

我想您正在谈论Sql的一个关键点

您始终可以使用linq查询EF对象…

linq!=LINQ到SQL

LINQ是一个概念,包括一些语言支持。有许多实现—LINQ到SQL是其中之一,ADO.NET数据服务、实体框架的LINQ到实体、LINQ到对象、LINQ到SQL、LINQ到Amazon、DbLinq等也是如此

您仍然将LINQ与实体框架一起使用;实际上,LINQtoEntities是首选,提供编译时静态检查。实体SQL只是查询EDM(实体数据模型)的另一种机制(除了LINQtoEntities)

ESQL之所以有用,主要有三个原因:

  • 当LINQtoEntities还在构建中时,它是早期预览中的唯一选项
  • 它可以在没有对象模型的某些场景中使用,例如reporting services
  • 在少数情况下,ESQL更具表现力

对于其他方面,LINQ应该是您使用实体框架的工具。

实体框架具有LINQ到实体,因此您也可以对EF执行非常相同的查询。我的答案是对EF进行更多的投资,因为升级EFv4似乎很有希望。

正如其他人所说,您可能指的是Linq to SQL vs Entity Framework


两者都适用于SQL Server,但只有实体框架适用于其他数据库。此外,LINQtoSQL或多或少已经贬值了。所以请使用实体框架。

哇哇哇。慢点

简短回答:实体框架

详细回答:

LINQ到SQL和实体框架是数据访问技术

林克女士说

LINQ是.NET的一组扩展 包括 语言集成的查询、集和 转换操作。它扩展了C# 和VisualBasic,并使用本机语言 查询和提供类的语法 图书馆应充分利用这些优势 能力

发件人:


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

据我所知,EF还没有完全准备好进入黄金时段,并且它不支持许多LINQ构造,这些构造如今在LINQ2SQL中很容易工作

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

我敢打赌,当EF准备好时,它将是一个更容易的转换,因为查询语言应该是可转移的


祝你好运。

我将于12月2日和3日在蒙特利尔参加微软TechDays,他们说,他们将在几年内不再支持LINQ到sql,所以你最好开始学习LINQ到实体(实体框架)。

很多人会不同意实体框架是未来::)不幸的是,这封信完全无关。他们一直等到EF已经发货后才开始写,所以更多的是抱怨他们被忽视,而不是要求一些改变。这甚至算不上是一厢情愿。我用LINQ to SQL学到的语法是否适用于LINQ to Entities(我知道Entities有一个大的设置和描述元数据的XML文件),但要得到答案,这两种情况下都是同一个查询?顺便说一句,如果您还不熟悉基本的ADO.NET,您最好了解一下。一切都归结为ADO.NET实现。了解幕后发生的事情是明智的。这些背景知识将有助于调试和故障排除情况。例如,如果自动数据处理无法检索到预期的数据,您可以使用ADO.NET对象快速启动验证测试,以验证ADO和代码之间是否存在问题。在处理.NET1遗留代码时,它也非常有用