如何使用Entity Framework从多个表中检索数据

时间:2014-08-09 06:39:23

标签: c# linq entity-framework

我是Entity Framework的新手,并致力于Boys&女孩宿舍应用。我决定将其开发为WCF服务。

我有两张桌子

  1. 大师
  2. Tbl_Room

    • Rm_no int(PK)
    • Rm_Name varchar
    • RentPerBed money
    • SharingLevel int

      1. 儿童

    Tbl_Bed

    • Sr_no(PK)
    • Rm_no int(FK)
    • Bed_no int
    • Status int

    我编写了以下函数来检索可用床的数据,但是我收到了错误......我对如何做到这一点很困惑......

    public IEnumerable<Tbl_Room> Available()
    {
        var avilableRoomWithBed = (from r in db.Tbl_Room
                                   join s in db.Tbl_Bed on r.Rm_No equals s.Rm_No
                                   where s.Status == 0
                                   select new Tbl_Room()
                                   {
                                       Rm_No = r.Rm_No,
                                       Rm_Name = r.Rm_Name,
                                       Floar = r.Floar,
                                       RentPerBed = r.RentPerBed
                                   }).ToList();
    
         return avilableRoomWithBed.ToList();
    }
    

    在这里,我想要检索状态为0,即可用的Bed_no

    我对IEnumerable的返回类型以及我必须返回的内容感到困惑

1 个答案:

答案 0 :(得分:0)

你正在接近你喜欢SQL的EF - 如果你已经在课堂上正确设置了你的关系(即在Tbl_Room上名为Beds的导航属性),那么你可以做到以下几点。

var avilableRoomWithBed = from r in db.Tbl_Room
                          where r.Beds.Any(b => b.Status == 0)
                          select r;