includeステートメントを使用するときにlinqで「納屋のドアが開いている」というステータス名を選択するにはどうすればよいですか?
// 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 には、barnid との外部キー関係を持つ Status.StatusName フィールドもあります。また、「納屋のドアが開いている」と「納屋のドアが閉じている」という 2 つのステータス名と、ステータスが発生した日付フィールドと id フィールドがあります。家畜を追加できるのは、納屋のドアが開いているときだけです。
納屋ごとに複数のステータスが存在する可能性があるため、これが正しい考えかどうかはわかりません。
StatusName が「納屋のドアが開いています」である日付までに発生した最後のステータスである納屋のみを一覧表示するにはどうすればよいですか?
.FirstDefault を追加しようとしましたが、最初の納屋だけでなく、「納屋のドアが開いています」を含むすべての納屋が必要です。