0

我有一个看起来像这样的数据库:

 Houses
    - HouseId
 Rooms
    - RoomId

 HouseRooms
    - HouseRoomId
    - HouseId
    - RoomId

class House
{
   [Key]
   public virtual int HouseId{ get; set; }


   public DbSet<HouseRoom> Rooms{ get; set; }
 }    

class HouseRoom

{ [Key] public virtual int HouseRoomId{ get; 放; }

   public virtual int HouseId{ get; set; }
   public virtual int RoomId{ get; set; }

   [ForeignKey("RoomId")]
   Public Role RoomInfo {get; set;}
}

class Room
{ 
   [Key] 
   public virtual int RoomId {get; set;}

   public string RoomName {get; set;}
} 

我只需要 House 实体/模式来加载所有房间记录。注意到 JOIN 表有一个 PK 名称 HouseRoomId 但这不是需要匹配 House 中的键的键。House.HouseId 需要匹配 HouseRoom.HouseId。

我怎样才能让它工作?

4

1 回答 1

2

好的,首先这是一个many-to-many,不是one-to-many。其次,您需要设置关系ModelCreation以让人们DbContext了解这种关系。此外,您需要使其List<Room> virtual能够在需要时加载。请看这个例子。 Code First Entity Framework 多对多关系

此外,作为记录,您无需指定[key],默认情况下它已经存在

于 2013-06-04T01:20:58.217 回答