2016-05-10 99 views
-1

我有实体User和BlockedUser。用户有许多BlockedUsers。 BlockedUsers是被用户阻止的用户列表。我如何使用Code First实现这些类?数据库创建完成后。用户表中没有任何BlockedUser的痕迹。实体框架自引用

public class User : IdentityUse 
{ 
    public List<User> BlockedUser; 
} 
+0

你有一个'用户'与'列表'这是被阻止的用户。 –

+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), 
) 

您可以创建表,然后创建从

0

模式不会有BLOCKEDUSER的用户表痕迹。它将创建一个BlockedUser表,它将有一个外键返回到用户表。因此,您最终可能在BlockedUser表中有五行,所有这些都会返回到ID为1的用户。当您通过用户的List属性导航到BlockedUsers时,EF会为您加载BlockedUsers。

如果您想延迟加载BlockedUsers,您应该使用virtual关键字创建List属性。

+0

没有BlockedUser tabel。 –

+0

@AmirRezaei您是否将BlockedUser作为DbSet添加到上下文中? –

+0

Paul在数据库的服务器资源管理器中没有BlockTabel。 –