documentation for 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正在说
在Take语句上无法隐式转换类型 'System.Linq.IQueryable'来 'System.Data.Entity.DbSet'。一个明确的 存在转换(你错过了演员吗?)
。
这里有什么指导吗?
答案 0 :(得分:0)
使用Take(5);如果不是5个元素,则最多需要5个元素或更少元素。
在official documentation中,我们可以读到:“在枚举元素产生之前,枚举source和yield元素,orsource不再包含元素。”。