Entity Framework Code Firstを使用して多対多リレーションシップをマップする必要があります。その標準的なソーシャルネットワーキングFriendRequestsマッピング。ユーザーオブジェクトには、List<User>
のFriendRequestsのコレクションがあります。次のようにデータベースでは、私は関係のために結合テーブルを使用しています:Entity Frameworkコードファーストコレクションマッピング - FriendRequests
CREATE TABLE dbo.FriendRequests(
UserId INT NOT NULL FOREIGN KEY REFERENCES dbo.Users(id),
FriendId INT NOT NULL FOREIGN KEY REFERENCES dbo.Users(id),
RequestDate SMALLDATETIME NOT NULL DEFAULT GETUTCDATE())
GO
ALTER TABLE dbo.FriendRequests ADD PRIMARY KEY (UserId,FriendId)
GO
にはどうすれば参加するテーブルを経由してコレクションを有効にするには、Entity Frameworkのコードファーストでユーザオブジェクトをマッピングしていますか?
RequestDateプロパティは必須ではありませんあなたはこのケースで
FriendRequest
実体を必要としません。その列を削除すると、多対多として行う方法はありますか? – reach4thelasers@ reach4thelasers:はい、私の編集を参照してください。 – Slauma
お返事ありがとうございます。私はあなたのコードを試し、それをテストするためにいくつかのサンプルデータを結合テーブルに入れましたが、私はuser.FriendRequests.Count()に対して常に0を得ています。結合されたコレクションを取得するために必要なことはありますか? – reach4thelasers