linqtoentitiesvslinqtoobjects-它们是一样的吗?我通常使用术语实体来表示业务数据对象,在我看来,linqtoentities和linqtoobjects是一样的。这不对吗?绝对不。LINQ-to-Objects是IEnumerable上的一组扩展方法,允许您对任意对象序列执行内存中查询操作。这些方法在必要时接受简单的委托。LINQ-to-Entities是一个LINQ提供程序,在IQueryable上具有一组扩展方法。这些方法构建了一个表达式树(这就是委托实际上作为Expression传递的原因),提供者将根据对该表达式树的解析构建SQL查询。例如,考虑以下查询:varquery1=mydb.MyEntity.Select(x=>x.SomeProp).Where(x=>x=="Prop");varquery2=mydb.MyEntity.Select(x=>x.SomeProp).AsEnumerable().Where(x=>x=="Prop");第一个查询将构建一个由select和where组成的表达式树,其中两个lambda实际上被视为LambdaExpressions。LINQ-to-Entities提供程序会将其转换为SQL以进行选择和筛选。第二个查询插入一个AsEnumerable(),它将强制查询的其余部分使用LINQ-to-Objects。在这种情况下,提供者将只根据选择生成SQL,从数据库中返回所有这些记录,然后过滤将在内存中进行。显然,这可能要慢得多。L2o用于内存中目标。L2e查询数据库。Linqtoentities旨在与EntityFramework一起使用,而Linqtoobjects可与任何IEnumerable集合一起使用。更多详细信息:LinqtoEntitiesLinqtoObjectsLinqtoObjects术语“LINQtoObjects”是指直接对任何IEnumerable或IEnumerable集合使用LINQ查询,而不使用中间LINQ提供程序或API,例如LINQtoSQL或LINQtoXML。您可以使用LINQ查询任何可枚举的集合,例如列表、数组或字典。该集合可以是用户定义的,也可以由.NETFrameworkAPI返回。从根本上讲,LINQtoObjects代表了一种新的集合方法。在旧方法中,您必须编写复杂的foreach循环来指定如何从集合中检索数据。在LINQ方法中,您编写描述要检索的内容的声明性代码。参考:http://msdn.microsoft.com/en-us/library/bb397919.aspxLinqtoEntityLINQtoEntities提供语言集成查询(LINQ)支持,使开发人员能够编写框架概念模型的查询。针对实体框架的查询由针对对象上下文执行的命令树查询表示。LINQtoEntities将语言集成查询(LINQ)查询转换为命令树查询,针对EntityFramework执行查询,并返回可供EntityFramework和LINQ使用的对象。下面是创建和执行LINQtoEntities查询的过程:参考:http://msdn.microsoft.com/en-us/library/bb386964.aspxLinq2Entities表示通过ADO.NETentity框架(数据库)查询数据Linq2Objects表示查询内存数据(本地对象)。以上就是C#学习教程:linqtoentitiesvslinqtoobjects——它们一样吗?如果所有分享的内容对你有用,需要进一步了解C#学习教程,希望大家多多关注。本文收集自网络,不代表立场。如涉及侵权,请点击右侧联系管理员删除。如需转载请注明出处:
