2017-04-09 3 views
0

私は3つのエンティティLINQの動的なクエリと非関連するエンティティを含める

class entityA 
{ 
    public Guid Id { get; set; } 
    public string NameA { get; set; } 
} 


class entityB 
{ 
    public Guid Id { get; set; } 
    public string NameB { get; set; } 
    public entityA EntityA { get; set; } 
} 

class entityC 
{ 
    public Guid Id { get; set; } 
    public Guid HistoryId { get; set; } 
} 

を持っているシナリオは、エンティティAとentityBは関係を持っていましたが、entityCは、それらのいずれかとの関係をしていません。

エンティティAとentityCの間に関係がないので、エンティティAとentityCと私は

db.entityA.Include(x=>x.entityB) 

を行うことができますが、私は(含めることができないエンティティAと関連entityBデータ)を取得します。

それは怒鳴るようにLINQのクエリ構文でのみ可能です:

from A in entityA join C in entityC on A.Id equals C.HistoryId select A 

は(含める)またはLINQのラムダ構文を使用してエンティティAとentityCに参加する方法はありますか?

+0

チェックこのhttp://stackoverflow.com/a/2767742/2224701 –

+0

可能性のある重複した[メソッドの構文とLINQ to SQLの中で参加を行う方法は?](http://stackoverflow.com/questions/3217669 /行方法を使用したリンキング・ツー・ア・メソッド・シンタックスの構文) –

答えて

0

質問によれば、論理的にはAとCの間に関係があります。 ForeignKey属性をCクラスのエンティティマッピングに配置して、クエリに含めることができます。

class entityC 
{ 
    public Guid Id { get; set; } 

    public Guid HistoryId { get; set; } 

    [ForeignKey("HistoryId")] 
    public entityA EntityA { get; set; } 
} 
関連する問題