在ApplicationUser

时间:2015-09-16 04:18:58

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

在我的网站上,我使用的是自定义ApplicationUser。我想将收藏夹存储到ApplicationUser上的一个字段中,但我遇到了问题。

我有一个这样的模型:

public class Score
{
    public int ScoreId{ get; set; }
}

使用DBContext创建此模型:

public class SongsContext : DbContext 
{
    public DbSet<Score> Scores { get; set; }
}

然后使用DbContextInitializer播种。

public class ApplicationUser : IdentityUser
{
    public List<Scores> FavoriteScores { get; set; }
}

每当我尝试使用EF迁移将其添加到我的数据库时,所有发生的事情是它想要生成通常使用我的DbContext创建的所有模型的表(但实际上并没有为FavoriteScores添加一列我的用户表)。 EF还不会让我存储一个引用ScoreID的整数列表而不创建一个新的类,其唯一目的是保持整数。

使用我的ApplicationUser对象引用Scores列表的最佳方法是什么?

1 个答案:

答案 0 :(得分:0)

您需要在Score实体上配置多对一关系。您可以通过向Score类添加对Application user Id的引用来实现。

public class Score
{
    public int ScoreId{ get; set; }
    public int ApplicationUserId{ get; set; }

    [ForeignKey("ApplicationUserId")]
    public virtual ApplicationUser ApplicationUser{ get; set; }
}

您可以在此处详细了解多对一关系http://www.entityframeworktutorial.net/code-first/configure-one-to-many-relationship-in-code-first.aspx