2017-04-06 11 views
0

私は2つのテーブルRoundGameを持っています。ラウンドには多くのゲームがあり、Web APIを使用してラウンドのすべてのゲームをしたいと考えています。ここでEntity Framework Web API - 外部キー値を使用して関連エンティティを取得する

は(この質問のために簡略化)私のクラス

namespace DataLayer.Entities 
{ 
    [Table("Games")] 
    public class Game : IEntity 
    { 
     public Guid Id { get; set; } 
     public int PlayerOneId { get; set; } 
     public int PlayerTwoId { get; set; } 
     public Guid RoundId { get; set; } 
     [ForeignKey("RoundId")] 
     public Round Parent { get; set; } 
    } 
} 

namespace DataLayer.Entities 
    { 
     [Table("Rounds")] 
     public class Round 
     {  
     public ICollection<Game> Games { get; set; }   
     public Guid Id { get; set; } 
     public bool HasStarted { get; set; } 
     public DateTime TimeStarted { get; set; } 
     public int RoundNumber { get; set; } 
     } 
    } 

ている私は、Entity Frameworkを使用してラウンドIDを渡すと、そのラウンドからゲームのすべてを取得することができるようにしたいと思います。

答えて

1

遅延ロードが有効になっていない場合は、ラウンドに含まれるゲームはincludeです。レイジーローディングが有効になっている場合は、includeは不要です。

Gamesは、ナビゲーションプロパティ(EFモデルで関係が正しく設定されていることが前提)を使用してアクセスできます。

Guid roundId;  
var roundWithGames = dbContext.Rounds.Include(r => r.Games).SingleOrDefault(r => r.Id == roundId); 
if (roundWithGames == null) { throw new ArgumentException(nameof(roundId)); } 
var gamesOfRound = roundWithGames.Games; 
関連する問題