次のモデルを持つプロジェクトに取り組んでいます。
友達とユーザーを作成し、本でユーザーを作成し、本で友達を作成することができました。
私が今やろうとしているのは、ユーザーの友達の本のリストを表示することです。
私のデータベースには、2 人のユーザーがいます。
1 ジル
2 ジャック
ジルとジャックは友達です。
Jill としてログインすると、次のクエリで Jack's Books を正常に表示できます。
List<int> friendsIds = db
.Friends
.Where(c => c.User.Id == u.Id || c.User1.Id == u.Id)
.Select(c => c.User1.Id)
.ToList<int>();
List<Book> friendsBooks = db
.Books
.Where(c => friendsIds.Contains((int)c.UserId))
.ToList<Book>();
labelMyBooks.Text = sBooks;
string sMyFriendsBooks = "";
foreach (Book b in friendsBooks)
{
sMyFriendsBooks += b.BookTitle + ",";
}
labelMyFriendsBooks.Text = sMyFriendsBooks;
Jack としてログインした場合、同じクエリで Jill's Books が提供されると想定しました。ただし、代わりに Jack's Book List を提供します。
Jack としてログインし、Jill's Book List を表示したい。ここで何が欠けていますか?ユーザーがデータベース内にいる順序と関係がありますか?