C# ObjectQuery-它是什么,如何访问它?
我正在仔细阅读 这些文档中的主要功能,但我不太明白它是什么。据我所知,它是一个表示查询的对象。我一直认为,当我编写Linq查询时,我会从中得到一个C# ObjectQuery-它是什么,如何访问它?,c#,entity-framework,linq-to-entities,C#,Entity Framework,Linq To Entities,我正在仔细阅读 这些文档中的主要功能,但我不太明白它是什么。据我所知,它是一个表示查询的对象。我一直认为,当我编写Linq查询时,我会从中得到一个IQueryable,这样我可以a)进一步编写它,或者b)枚举它,以便它从数据库中获取数据 ObjectQuery与IQueryable有何不同 文章中提到的“命令树查询”是什么?它与表达式树有何不同 我是否可以从编写Linq查询时获得的IQueryable中获得ObjectQuery 链接: 它是System.Data的一部分,与LINQ分离。因为它
IQueryable
,这样我可以a)进一步编写它,或者b)枚举它,以便它从数据库中获取数据
ObjectQuery
与IQueryable
有何不同IQueryable
中获得ObjectQuery
它是System.Data的一部分,与LINQ分离。因为它将SQL字符串转换为对象,所以如果出于某些原因,您不想使用LINQ或EF,它可能会很有用。EF中较新的版本是
context.SqlQuery("Select * from Students").ToList<Student>();
context.SqlQuery(“从学生中选择*).ToList();
就跟
new ObjectQuery<Student>("Select * from Students", context).
newobjectquery(“从学生中选择*”,上下文)。
其中,后一行中的上下文是对象上下文,第一行中是DBContext。
这一切都不是强类型的,因此“更简单”或快速脏。这不是推荐的方式
推荐的方法是使用DbSet
ObjectQuery
是否与Linq to Entities和EF 6有关?正如您在定义中看到的:公共类ObjectQuery:System.Data.Objects.ObjectQuery,System.Collections.Generic.IEnumerable,System.ComponentModel.IListSource,System.Linq.IOrderedQueryable,System.Linq.IQueryable
它是它的一部分;从EF 1,2,3开始就存在了。首先从数据库开始,涉及EDMX文件和检查数据库生成的代码。今天,我们宁愿使用代码优先模型。您可以手动编写代码并从中创建数据库。也许我们可以把一个对象查询看作一个低级层,也许它是EF内部使用的。