多对多自我加入实体框架代码优先

时间:2011-12-26 13:34:15

标签: c# entity-framework ef-code-first

考虑这个Poco

public class User
{
    public int Id { get; set; }
    public string Username { get; set; }
    public string Fullname { get; set; }
}

现在我想实现一种跟随技术,用户可以跟随其他用户,因此基本上是自己的多对多关系

问题是我不知道我是如何在Entity Framework Code-First中实现这一目的的呢?

我想到了一个链接器表:

    public class UserFollow
{
    public int Id { get; set; }
    public int Follower { get; set; }
    public int Following { get; set; }
    public DateTime FollowDate { get; set; }
}

我希望能够从每个用户对象中获取所有关注者和关注者?

1 个答案:

答案 0 :(得分:1)

使用EF代码首先非常简单,因为您只需要用户POCO:

public class User
{
    public int Id { get; set; }
    public string Username { get; set; }
    public string Fullname { get; set; }

    public ICollection<User> FollowedUsers { get; set; }
}

该集合意味着User与其他用户相关。

PS:我注意到你在解决方案示例中添加了一个时间戳。为了实现这一目标,您仍应添加将通用类型更改为适合您需要的集合。

希望它有所帮助。