为什么我的数据库在 ASP.NET Core 2.1 中播种后仍然是空的?

Why my database is still empty after I seed it in ASP.NET Core 2.1?

在使用 Entity Framework 的 ASP.NET 核心 MVC 网络应用程序中,我按如下方式定义模型:

using System.Linq;
using System.Threading.Tasks;

namespace NewTechParentPortalV3.Models
{
    public class Student
    {
        public int StudentID { get; set; }
        [StringLength(50, ErrorMessage = "Last name cannot be longer than 50 
characters.")]
        public string LastName { get; set; }
        [StringLength(50, ErrorMessage = "First name cannot be longer than 
50 characters.")]
        public string FirstMidName { get; set; }
        [DataType(DataType.Date)]
        [DisplayFormat(DataFormatString = "{0:yyyy-MM-dd}", 
ApplyFormatInEditMode = true)]
        public DateTime EnrollmentDate { get; set; }
        public int ParentID { get; set; }

        public ICollection<Enrollment> Enrollments { get; set; }
        public Parent Parent { get; set; }
    }

    public class Parent
    {
        public int ID { get; set; }
        [StringLength(50, ErrorMessage = "Last name cannot be longer than 50 
characters.")]
        public string LastName { get; set; }
        [StringLength(50, ErrorMessage = "First name cannot be longer than 
50 characters.")]
        public string FirstMidName { get; set; }
        public string Address { get; set; }
        public string Telephone { get; set; }
        [DataType(DataType.EmailAddress)]
        public string Email { get; set; }

        public ICollection<Student> Students { get; set; }
    }
}

然后我更新了数据库上下文,并在数据库中植入了测试数据。之后,我添加了迁移,更改了连接字符串以创建一个新连接字符串,然后更新了数据库。但是当我打开数据库时,它是空的?

注意:在我向两个模型添加导航属性之前,我能够正确地播种数据库,我的意思是在将以下代码添加到 Student 模型之前:

            public Parent Parent { get; set; }

并将以下代码添加到父模型:

    public ICollection<Student> Students { get; set; }

说明我其他部分都做对了,但是当我加上上面几行代码的时候,数据库就变空了。谁能帮我找出问题所在?

有两件事要确认:

  1. 您是否为这些导航属性定义了关系,例如:
protected override void OnModelCreating(ModelBuilder modelBuilder)
{
    modelBuilder.Entity<Parent>().HasMany(g => g.Students);

    base.OnModelCreating(modelBuilder);
}
  1. 做种的时候有没有给对方赋值
var parentId = 1;
var student = new Student
{
  ParentId = parentId
}
....

var parent = new Parent()
{
  ID = parentId
  Students = {student}
}