实体框架,代码优先和外键多对多

时间:2012-05-16 21:47:04

标签: asp.net-mvc-3 entity-framework foreign-keys ef-code-first code-first

我有这个课程:

public class User
{
    [Key]
    public Guid UserId { get; set; }
    public string Address { get; set; }
    public double Latitude { get; set; }
    public double Longitude { get; set; }
    public string Units { get; set; }
    public int Distance { get; set; }

    public List<Sport> Sports { get; set; }
}

public class Sport
{
    [Key]
    public int SportId { get; set; }        
    public string Name { get; set; }        

    public List<User> Users { get; set; }
}

因此,这些具有多对多外键的类在数据库中生成如下表:SportUsers(SportId,UserId)

当用户注册时,从体育列表框中选择他感兴趣的体育项目。因此,在适当的控制器中的Register操作中,我保存用户:

db.Users.Add(user);
db.SaveChanges();

但是,如何保存用户感兴趣的运动列表,在自动生成的外键,SportUsers表???

1 个答案:

答案 0 :(得分:1)

如果您的用户拥有Sports的集合,Entity Framework将会发现这是一个M * N关系并自动填充您数据库中的关系。