2016-07-27 5 views
1

私はエンティティフレームワークコアを使用しています。私は、製品のリストを作成しようとしていて、関連レビューとレビュー者データを表示します。エンティティフレームワーク:InvalidOperationException複数のプロパティレベルを含む場合

私は3つのエンティティがありますthis answerに参照のうえ、私がレビューや著者の製品のリストを要求すると、

public class Product 
{ 
    [Key] 
    public int ID { get; set; } 
    public ICollection<Review> Reviews {get; set;} 
} 

public class Review 
{ 
     [Key] 
     public int ID { get; set; } 
     public Product Product {get; set;} 
     public Customer Author { get; set; } 
} 

public class Customer 
{ 
     [Key] 
     public int ID { get; set; } 
     public ICollection<Review> Reviews { get; set; } 
} 

を:

context.Products.Include(p=> p.Reviews.Select(r => r.Author)).ToList(); 

次のエラーがスローされます。

System.InvalidOperationException
メッセージ=プロパティ式 'p => {[p]のレビューrから.Reviews select [r] .Author}'は無効です。式はプロパティへのアクセスを表す必要があります。 't => t.MyProperty'

アドバイスをいただければ幸いです。

+0

あなたはどんな流暢なマッピングを持っていますか? –

+0

私は流暢なマッピングがありませんでした。 –

答えて

1

まだ行われていない何かまたは欠落しているようだが、とにかくあなたはそのようにそれを行うことができます。

context.Products.Include(p => p.Reviews).ThenInclude(x=>x.Author).ToList(); 
+0

ありがとう@Bassam :)しかし、あなたの例では、 'x'のタイプはICollection であり、レビューではありません。だから私はこれがうまくいくとは思わない。 –

+0

@StevePaulこれはあなたの質問のようなものです。ちょうどそれを試してください^^ –

+1

私のapoligies - あなたは正しいです、私は間違っています!なんらかの理由で、コンパイルエラーが発生していました。私はモデルクラスを再コンパイルし、エラーは消えました!私は非常に混乱しています。しかし、あなたの時間をありがとう:) –

関連する問題