无法获取dbset类型元素的长度/大小/计数
本文关键字:大小 计数 元素 获取 dbset 类型 | 更新日期: 2023-09-27 18:15:57
DbSet
的文档似乎没有任何方法返回DbSet
中的元素数量。也许我错了。无论如何,让我解释一下我的情况:
我有一个类Score
建模行表在我的数据库
public partial class Score
{
public Score()
{
GameLogs = new HashSet<GameLog>();
}
public int id { get; set; }
[Column("score")]
public int score1 { get; set; }
[StringLength(50)]
public string name { get; set; }
public DateTime playdate { get; set; }
public virtual ICollection<GameLog> GameLogs { get; set; }
}
和表的模型是DbSet<Score>
类型,我试图创建一个方法,返回由score1
排序的前5行,或者,如果数据库少于5行,返回由score1
排序的所有行。
我有的是
public DbSet<Score> getTopFiveOrFewerScores ( )
{
return (
from s in SD.Scores
orderby s.score1 descending
select s
).Take(Math.Min(SD.Scores.length, 5));
}
主要问题是,我把length
那里作为占位符,因为显然没有length
或等效的属性在DbSet
。另一个问题是Visual Studio显示
不能隐式转换类型"来。这个IQueryable"System.Data.Entity.DbSet"。一个显式的存在转换(您是否缺少强制类型转换?)
中的Take语句。
这里有什么指导吗?
Use Take (5);如果没有5个可用的元素,它将最多取5个或更少的元素。
在官方文档中我们可以读到:" Take枚举source并生成元素,直到生成了count个元素或source不再包含元素为止。"。