私は、ユーザーがユーザーでもある友達のコレクションを持っているという標準的なソーシャルネットワーキングパラダイムを持っています。
私は最初にエンティティフレームワークコードを使用しており、友達関係は次のように定義されています。
modelBuilder.Entity<User>()
.HasMany(u => u.Friends)
.WithMany()
.Map(m =>
{
m.ToTable("Friendships");
m.MapLeftKey("UserId");
m.MapRightKey("FriendId");
});
私がやりたいのは、返された各ユーザーが現在のユーザーと友達であるかどうかを示すインジケーターを使用して、すべてのユーザーを返すユーザーテーブルを検索することです。明確にするために、友達であるユーザーと友達ではないユーザーを返しますが、各ユーザーが友達であるかどうかを示すブール値も返します。基本的な左外部結合であるTSQLでこれを行う方法を知っています。
LINQで左結合を実行する方法の例を見てきましたが、私が見たすべての例は、マップされた型に結合しています。MyFriendships列にMappedタイプがありません。
EntityFrameworkでこれを行うにはどうすればよいですか?