これは単純なはずですが、混乱しています。
親/子テーブルがあります-子テーブルのフィルタリングに応じて、親テーブルから選択するだけです。
したがって、親テーブルである部屋は、クライアントテーブルに1対多でリンクされています-クライアントテーブルにリンクされたレコードがなく、クライアント.出発日が特定の日付より前である部屋を選択したい:
public class Room
{
public int RoomId { get; set; }
public string RoomName { get; set; }
public List<Client> Clients { get; set; }
}
public class Client
{
public int ClientId { get; set; }
public int RoomId { get; set; }
public string Name { get; set; }
public DateTime Arrival { get; set; }
public DateTime Departure { get; set; }
public Room Room { get; set; }
}
私のコントローラーで私は試してきました:
public ActionResult Avail()
{
DateTime dteFrom = DateTime.Parse("2012-07-01"); //hard coded for testing
Room room = db.Rooms.Where(r => r.Clients.Any(c => c.Departure <= dteFrom));
しかし、エラーメッセージが表示されます:
Cannot implicitly convert type 'System.Linq.IQueryable<ttp.Models.Room>' to 'ttp.Models.Room'. An explicit conversion exists (are you missing a cast?)
モデルクラスまたは Where ステートメントを変更する必要があると誰かが提案できますか?