这应该很简单,但我很困惑。
我有一个父/子表 - 我想做的就是从父表中选择,具体取决于子表的过滤。
因此,父表 Rooms 与 clients 表一对多地链接 - 我想选择在 Clients 表中没有链接记录的房间,其中 clients.Departure 日期在特定日期之前:
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 语句?