2016-05-10 30 views
-1

私はエンティティUserとBlockedUserを持っています。ユーザーには多くのBlockedUsersがあります。 BlockedUsersは、ユーザーによってブロックされたユーザーの一覧です。コードファーストを使用してこれらのクラスを実装するにはどうすればよいですか?データベースが作成された後。 UserテーブルにBlockedUserのトレースはありません。Entity Framework自己参照

+0

ブロックされたユーザーである 'List 'を持つ 'User'があります。 –

+0

はい、それは正しいです。しかし、それは十分ですか? –

+1

試してみてください。次に、問題をコードに書き込んで、期待したことと実際に何をしているのかを説明します。 –

答えて

1

私はちょうど最初にデータベースを作成したので、私は最初に以下のようなテーブルを作成しました。あなたは多対多の関係を持っています。

create table User 
(
ID int primary key, 
Name nvarchar(100), 
) 
create table BlockedUsers 
(
UserID int, 
BlockUserID int, 
primary key(UserID, BlockUserID), 
foreign key (UserID) references User(ID), 
foreign key (BlockUserID) references User(ID), 
) 

userテーブルにBLOCKEDUSERの跡がないこと

0

からモデルを作成し、テーブルを作成することができます。 Userテーブルに外部キーが返されるBlockedUserテーブルが作成されます。したがって、最終的にBlockedUserテーブルに5行があり、すべてがID 1のUserを参照している可能性があります.UserのListプロパティを使用してBlockedUsersに移動すると、EFはBlockedUsersを読み込みます。

BlockedUsersを遅延読み込みするには、virtualキーワードを使用してListプロパティを作成する必要があります。

+0

BlockedUserタブはありません。 –

+0

@AmirRezaei BlockedUserをコンテキストにDbSetとして追加しましたか? –

+0

PaulデータベースのサーバーエクスプローラにBlockTabelはありません。 –