Asp.net mvc 4 使用实体框架5从MVC4中包含的几个实体中选择状态
在使用include语句时,如何在linq中选择“barn doors open”的状态名称Asp.net mvc 4 使用实体框架5从MVC4中包含的几个实体中选择状态,asp.net-mvc-4,entity-framework-5,Asp.net Mvc 4,Entity Framework 5,在使用include语句时,如何在linq中选择“barn doors open”的状态名称 // GET: /Cowbow/Farm/ public ActionResult IndexNew() { var barns = dbFarm.Barn.Include(b => b.Dog).Include(b => b.Cat).Include(b => b.Pig).Include(b => b.Cow).Include(b => b.Chicken).I
// GET: /Cowbow/Farm/
public ActionResult IndexNew()
{
var barns = dbFarm.Barn.Include(b => b.Dog).Include(b => b.Cat).Include(b => b.Pig).Include(b => b.Cow).Include(b => b.Chicken).Include(b => b.Feed);
// return View(barns.ToList()); // normal scaffold generated return
return View(barns.Where(b => b.Statuses.Where(s => s.statusName == "barn doors open")).AsEnumerable().ToList());
}
Barn还有一个Status.StatusName字段,该字段与barnid具有外键关系。它还具有两个可能的状态名称,“谷仓门打开”和“谷仓门关闭”,以及状态发生的日期字段和id字段。我只能在谷仓门打开时添加农场动物
不确定这是否正确,因为每个谷仓可能有多个状态
如何仅列出在日期前出现的最后一个状态为“谷仓门打开”的谷仓
我试图添加.FirstDefault,但我希望所有包含“打开谷仓门”的谷仓,而不仅仅是第一个谷仓。如果我正确理解您的意思,在某个特定时刻,您的谷仓可能只有一个状态(打开或关闭)。所以你不需要多对多的关系。只要写下:
return View(barns.Where(a => a.Status.statusName == "barn doors open").AsEnumerable().ToList());
你在找这个…?:
return View(barns
.Where(b => b.Statuses
.Where(s => s.statusName == "barn doors open" &&
s.TimeStap == b.Statuses.Max(st => st.TimeStamp))
.AsEnumerable().ToList());
您也不需要调用
.AsEnumerable()
返回视图(barns.Where(b=>b.Statuses.Contains(newstatus{StatusName=“barn doors open”})).ToList();因为我想用一个日期戳来记录谷仓门每次打开或关闭的时间。@cyberslue@Ok。我不能评论,因为我以前从未使用过这种方法。如果有效,请告诉我:)在任何给定的时刻,谷仓都只有一种状态。但我想用日期时间戳将所有状态更改存储在仓库中。。。?什么是账户
以及它在哪里使用…?您不应该看到这一点