实体框架 - 使用连接表返回关注者/关注者的集合

时间:2011-07-07 19:01:49

标签: asp.net entity-framework entity-framework-4

使用Entity Framework,我正在编写一个社交网络应用程序并尝试设置一些关系,以便我可以让用户拥有关注者/关注者属性。

我有一个用户表:

Users
_______
Id
FirstName
LastName
Email

然后我有一张Follows表:

Follows
__________
FollowerId
FolloweeId

在强类型的User对象上,我想看到.Followers和.Folllowing属性,它们返回User对象的集合。到目前为止,我已经尝试将Follows表中的列作为外键,并将它们作为复合主键。实体模型以我想要的方式出现(我之间没有实体,我只需要重命名导航属性),但是当我填充数据时,Followers和Following集合是空的,所以这种关系是不对的。

我想我可以分开并有两个表,关注者和关注者,但我会有重复的数据,并且当有人跟随其他人时,必须添加到两个表。

1 个答案:

答案 0 :(得分:2)

您需要在查询中包含User表与之关系的表的数据。

像这样的查询:

using (EntityObject context = new EntityObject())
{
    var user = from x in context.users.Include("Followers").Include("Followees") //use your tables
               where x.Id == TheUserId
               select x;


}

将允许您访问这些包含的表的对象。