0

次のようなDBがあります。

 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

{ [キー] 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 テーブルには HouseRoomId という PK 名がありますが、これは House のキーと一致する必要があるキーではないことに注意してください。House.HouseId は HouseRoom.HouseId と一致する必要があります。

どうすればこれを機能させることができますか?

4

1 に答える 1

2

まず、これはmany-to-manではなく yone-to-manyです。ModelCreation次に、関係をオンにして、この関係について知らせる必要がありますDbContext。また、必要なList<Room> virtualときにロードできるようにする必要があります。この例を見てください。 Code First Entity Framework 多対多のリレーションシップ

また、レコードについては、指定する必要はありません。[key]デフォルトですでに存在します。

于 2013-06-04T01:20:58.217 に答える