如何在实体中使用查找表?

时间:2013-12-30 02:19:29

标签: c# sql asp.net-mvc entity-framework

我已将数据库导入实体。一切都很好,除了我的查找表不再容易访问。

示例我有一个Users表和一个Friends表。许多独特的用户可以拥有相同的朋友。为了解决这个问题,我有一个Users_Friends表,包含2列(UserID和FriendID)。

我希望能够针对唯一的userID查询此表,以提取与该特定用户关联的所有FriendID。但是当我尝试做的时候

using (var db = new GameAlertDBEntities())
{
    var friendIDs = db.Users_Friends.
}

我马上告诉无法解析符号Users_Friends。我在那里试图找出如何在前进之前解决符号。奇怪的是,实体发现我的所有其他表都不是我的查找表。

2 个答案:

答案 0 :(得分:1)

多对多关系辅助表不会被抽象到EF表中。相反,您可以直接加入相关实体列表,如下所示:

using (var db = new GameAlertDBEntities())
{
    var user = db.Users.First(); // or any other query for user
    var friends = user.Friends;
}

这是怎么发生的?实体框架在导入期间识别这种关系,并完成幕后的所有工作。

答案 1 :(得分:0)

如果UserId和FriendId未标记为外键,则必须通过简单查询找到朋友

var userFriends = db.Users.Friends.ToList();