ObjectQuery - 它是什么,如何访问它?
ObjectQuery - what is it, how to get to it?
我正在阅读 Linq to Entities。
ObjectQuery<T>
在这些文档中占据显着位置,但我不太明白它是什么。根据我的阅读,它是一个代表查询的对象。我一直认为,当我编写 Linq 查询时,我会从中得到一个 IQueryable
,因此我可以 a) 进一步组合它或 b) 枚举它以便从数据库中获取数据。
ObjectQuery
与 IQueryable
有何不同?
- 文章中提到的'command tree query'是什么?它与表达式树有何不同
- 我可以从我编写 Linq 查询时得到的
IQueryable
得到 ObjectQuery
吗?
链接:
https://docs.microsoft.com/en-us/dotnet/api/system.data.objects.objectquery-1?view=netframework-4.8
它是 System.Data 的一部分,与 LINQ 不同。由于它将 SQL-String 转换为对象,如果出于某些原因您不想使用 LINQ 或 EF,它可能会很有用。 EF 中的较新版本是
context.SqlQuery("Select * from Students").ToList<Student>();
与
相同
new ObjectQuery<Student>("Select * from Students", context).
后面的context是Object Context,第一行是DBContext。
它们都不是强类型的,因此 'simpler' 或 Quick & Dirty。不是推荐的方式。
推荐的方法是使用 DbSet 并且根本不处理 SQL 字符串(如果可以避免的话)。
我正在阅读 Linq to Entities。
ObjectQuery<T>
在这些文档中占据显着位置,但我不太明白它是什么。根据我的阅读,它是一个代表查询的对象。我一直认为,当我编写 Linq 查询时,我会从中得到一个 IQueryable
,因此我可以 a) 进一步组合它或 b) 枚举它以便从数据库中获取数据。
ObjectQuery
与IQueryable
有何不同?- 文章中提到的'command tree query'是什么?它与表达式树有何不同
- 我可以从我编写 Linq 查询时得到的
IQueryable
得到ObjectQuery
吗?
链接:
https://docs.microsoft.com/en-us/dotnet/api/system.data.objects.objectquery-1?view=netframework-4.8
它是 System.Data 的一部分,与 LINQ 不同。由于它将 SQL-String 转换为对象,如果出于某些原因您不想使用 LINQ 或 EF,它可能会很有用。 EF 中的较新版本是
context.SqlQuery("Select * from Students").ToList<Student>();
与
相同new ObjectQuery<Student>("Select * from Students", context).
后面的context是Object Context,第一行是DBContext。 它们都不是强类型的,因此 'simpler' 或 Quick & Dirty。不是推荐的方式。
推荐的方法是使用 DbSet