C# 如何计算ObjectQuery将返回多少个对象<;T>;?

C# 如何计算ObjectQuery将返回多少个对象<;T>;?,c#,entity-framework,C#,Entity Framework,我正在构建一个ObjectQuery,如下所示: string query = "select value obj from Entities.Class as obj " + "where obj.Property = @Value"; ObjectQuery<Class> oQuery = new ObjectQuery<Class>(query, EntityContext.Instan

我正在构建一个ObjectQuery,如下所示:

        string query = "select value obj from Entities.Class as obj " +
                       "where obj.Property = @Value";

        ObjectQuery<Class> oQuery = new ObjectQuery<Class>(query, EntityContext.Instance);
        oQuery.Parameters.Add(new ObjectParameter("Value", someVariable));
string query=“从实体中选择值obj。类为obj”+
“其中obj.Property=@Value”;
ObjectQuery oQuery=新建ObjectQuery(查询,EntityContext.Instance);
Add(newObjectParameter(“Value”,someVariable));
现在,我可以将这个对象指定为控件的数据源,或者使用foreach循环进行迭代,甚至强制对列表进行物化,但是,我可以在不强制物化的情况下计算将返回的对象数吗

我是否需要创建一个执行count()的伴随查询,或者是否有一个函数可以在某个地方为我执行

谢谢。

ObjectQuery
实现了
IQueryable
,所以您不能简单地使用扩展方法:

int count = oQuery.Count();
如果执行此操作会发生什么?我希望整个查询只进行Count()。。。(并不是说我做了很多EF…。

ObjectQuery
实现了
IQueryable
,所以您不能简单地使用扩展方法:

int count = oQuery.Count();
如果执行此操作会发生什么?我希望整个查询只进行Count()。。。(并不是说我做了很多EF…。

ObjectQuery类实现了IEnumerable接口,该接口支持Count()方法

你从中得到了什么

int count = oQuery.Count();
ObjectQuery类实现IEnumerable接口,该接口支持Count()方法

你从中得到了什么

int count = oQuery.Count();

如果计数小于1,则它已找到一条新记录;如果计数不小于1,则它已找到该记录。

如果计数小于1,则它已找到一条新记录;如果计数不小于1,则它已找到该记录。

请注意,Enumerable.count()将强制加载数据;您需要Queryable.Count()来获得可组合行为;您需要Queryable.Count()来获得可组合的行为。这对我来说很有效,但我在公开Count()方法时花了很长时间。如果有人遇到ObjectQuery.Count()不可用的情况,不要忘记在类中包含使用System.Linq。这让我陷入了一段时间,因为我之前删除了未使用的using语句,而我的ObjectQuery对象的Intellisense选项是可用选项的子集。这对我来说很有效,但我花了很长时间才公开Count()方法。如果有人遇到ObjectQuery.Count()不可用的情况,不要忘记在类中包含使用System.Linq。这让我陷入了一段时间,因为我在前面删除了未使用的using语句,而我的ObjectQuery对象的Intellisense选项只是可用内容的一个子集。