エンティティ B からエンティティ A への FK が存在できない理由はわかりませんが、何らかの参照制約がなければ、2 つのエンティティ間をトラバーサルすることはできません (つまり、特定の A ごとにすべての B を抽出することはできません。また、特定の B の A を抽出することはできません)。私がお伝えできる最も簡単な方法は、その FK を追加することですが、それが不可能な場合は、単にエンティティ B のプロキシ/マップとして機能する別のエンティティを作成する必要があります。BProxy エンティティは、 B エンティティ。
public class BProxy
{
[Key]
public int Id {get; set;}
[Required]
public int EntityBId {get; set;}
public virtual EntityB {get; set;}
[Required]
public int EntityAId {get; set;}
public virtual EntityA {get; set;}
}
エンティティ A は、B オブジェクトの代わりに BProxy オブジェクトのコレクションを持つことになります。
public virtual ICollection<BProxy> BProxies { get; set; }
このようにして、LINQ を介してリレーションシップを双方向にトラバースするクエリを作成できます。