【问题标题】:.NET - Entity Framework 3.5 - using top/where clauses.NET - Entity Framework 3.5 - 使用 top/where 子句
【发布时间】:2012-12-10 17:18:07
【问题描述】:

我是 .NET 新手,有人要求我对项目进行一些更改。它使用的是 Entity Framework 3.5。

我们目前有如下代码块:

using (MemphisEquipmentEntities entities = new MemphisEquipmentEntities())
{
    var trucks = entities.Trucks.Top("4");
    truckRepeater.DataSource = trucks;
    truckRepeater.DataBind();
}

我需要在 IsSpanish 为 true 的情况下获取前 4 名卡车,而不是前 4 名卡车。于是我写了代码

var trucks = entities.Trucks.Top("4").Where(t => t.IsSpanish == true)

不幸的是,这并没有按照我想要的顺序进行评估。它将前四辆卡车拉出桌子,然后检查它们是否是西班牙人,如果不是,则丢弃它们。切换 top/where 子句不起作用 - 它会引发错误。

谁能引导我朝着正确的方向前进?我的 Google 技能让我失望,而且我一无所知。

【问题讨论】:

  • 将你的 .Top() 移到 .Where() 之后我无法测试并获得经过验证的代码,所以我不会给出这个答案。

标签: .net frameworks entity where iqueryable


【解决方案1】:
var trucks = entities.Trucks.Where(t => t.IsSpanish == true).Take(4);

虽然你也应该对它们进行排序,但在获得前 4 名之前,你还没有告诉我们排序标准应该是什么。

注意:取而不是顶部

【讨论】:

  • 他使用Top()方法,我使用Take()方法。你是那个不读书的人。它们是不同的方法。
  • 正是我需要的。谢谢!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2011-11-11
  • 2019-10-10
  • 2013-06-07
  • 2010-11-25
  • 2011-02-22
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多