.NET-实体框架3.5-使用top/where子句

.NET-实体框架3.5-使用top/where子句,.net,frameworks,entity,where,iqueryable,.net,Frameworks,Entity,Where,Iqueryable,我是.NET新手,有人要求我对一个项目进行一些更改。它使用实体框架3.5 我们目前有如下代码块: using (MemphisEquipmentEntities entities = new MemphisEquipmentEntities()) { var trucks = entities.Trucks.Top("4"); truckRepeater.DataSource = trucks; truckRepeater.DataBind(); } 我需要抓住前四名的

我是.NET新手,有人要求我对一个项目进行一些更改。它使用实体框架3.5

我们目前有如下代码块:

using (MemphisEquipmentEntities entities = new MemphisEquipmentEntities())
{
    var trucks = entities.Trucks.Top("4");
    truckRepeater.DataSource = trucks;
    truckRepeater.DataBind();
}
我需要抓住前四名的卡车,而不是抓住前四名的卡车,因为IsSpanish是正确的。所以我写了代码

var trucks = entities.Trucks.Top("4").Where(t => t.IsSpanish == true)
不幸的是,这没有按照我希望的顺序进行计算。它将排名前四的卡车从表中拉出,然后检查它们是否是西班牙人,如果不是,则丢弃它们。切换top/where子句不起作用-它会抛出一个错误

谁能把我引向正确的方向?我的谷歌技能让我失望,而且我一窍不通

var trucks = entities.Trucks.Where(t => t.IsSpanish == true).Take(4);
虽然在进入前4名之前,您也应该对它们进行排序,但您还没有告诉我们排序标准应该是什么


注意:Take而不是Top

将你的.Top()移动到.Where()后面,我无法测试并获得经过验证的代码,所以我还不会回答这个问题。他使用
Top()
方法,我的使用
Take()
方法。你是那个不读书的人。它们是不同的方法,正是我所需要的。谢谢