如何在ASP.NET MVC中建立表之间的关系?

时间:2019-01-11 11:23:06

标签: c# asp.net sql-server model-view-controller

我在项目中使用“ AspIdentity”。在项目中,“ AspIdentity”的所有标准模型 还有一个模型“ Post”。我希望每个帖子都有其ApplicationUser,每个ApplicationUser都有自己的帖子集合。并且已经有一个数据库,其中有一个表来存储有关用户的信息。

我试图独立地创建表,数据上下文和数据库,但是我没有找到任何信息,但是没有找到与我的案件有关的信息。

发布模型:

public class Post
{
    public int Id { get; set; }
    public string Body { get; set; }
    public string ApplicationUserId { get; set; }
    public ApplicationUser ApplicationUser { get; set; }
}

ApplicationUser模型:

public class ApplicationUser : IdentityUser
{
    public int Year { get; set; }
    public virtual ICollection<Post> Posts { get; set; }
    public ApplicationUser()
    {
        Posts = new List<Post>();
    }
}

我希望在响应中看到数据上下文,并在查询中创建职位表。

1 个答案:

答案 0 :(得分:0)

您需要在DbContext类(可能是ApplicationDbContext)中覆盖 OnModelCreating 方法。在重写方法中,建立类之间的关系。以下是应该解决您的问题的示例代码:

protected override void OnModelCreating(DbModelBuilder modelBuilder)
{
    base.OnModelCreating(modelBuilder);
    modelBuilder.Entity<ApplicationUser>()
                .HasMany(e => e.Posts)
                .WithRequired(e => e.ApplicationUser)
                .HasForeignKey(e => e.ApplicationUserId)
                .WillCascadeOnDelete(false);
}