有没有一种方法可以使用LINQ语句来计算行数?
我一直用这个LINQ声明:有没有一种方法可以使用LINQ语句来计算行数?
var phrases = await db.Phrases
.AsNoTracking()
.ToListAsync();
但我需要的是让在词的行数的计数。
我从来没有用过LINQ来做到这一点。有没有办法可以做到这一点?
var phrasesCount = db.Phrases.Count();
的async version(假设这是EF):
var phrasesCount = await db.Phrases.CountAsync();
可能值得一提的是,不要返回项目,(我知道这里你似乎想要项目),你可以通过使用.Query()方法从数据库中获得更高性能的计数:http://stackoverflow.com/questions/22186674/entity -framework-poor-count-performance –
@ChadMcGrath从问题和[链接文档](https://msdn.microsoft.com/en-us/data/jj574232.aspx#queryCount)看来,这只适用于统计*相关*实体,这里不是这种情况。看来[查询](https://msdn.microsoft.com/en-us/library/system.data.entity.infrastructure.dbcollectionentry.query(v = vs.113).aspx#M:System.Data。 Entity.Infrastructure.DbCollectionEntry.Query)是'DbCollectionEntry'上的一个实例方法,所以我不确定你的答案中的第一位代码是否被编译。 –
查尔斯提供有效的答案,但因为你从来没有与LINQ工作过,这是很好的知道, .Count()允许您将谓词作为参数传递。
例如,如果你想数是超过30个字符的短语,你可以写这样的事情
var longPhrases = db.Phrases.Count(phrase => phrase.Lenght > 30);
'.Count中()'???? – Habib
@Habib说了什么,也是软件开发的黄金法则之一:RTFM https://msdn.microsoft.com/en-us/library/mt693024.aspx –