尝试为数据库设定种子时出现 EF 异常

本文关键字:EF 异常 种子 数据库 | 更新日期: 2023-09-27 18:35:21

我按照本教程创建了自己的应用程序: http://www.asp.net/mvc/overview/getting-started/getting-started-with-ef-using-mvc/creating-an-entity-framework-data-model-for-an-asp-net-mvc-application

当我开始调试并尝试打开玩家列表的选项卡时,它相当于这些教程中的"学生"选项卡,我得到了以下异常:

异常详细信息:类型为"AzsPkInz.DAL.AZSContext

"的对象无法转换为类型"System.Data.Entity.IDatabaseInitializer'1[AzsPkInz.DAL.AZSContext]"。

源错误:

  1. 第 19 行:公共操作结果索引()
  2. 第 20 行:{
  3. 第 21 行:返回视图(db.Players.ToList());
  4. 第 22 行:}

这是AZSContext来源:

public class AZSContext : DbContext
{
    public AZSContext() : base("AZSContext")
    {
    }
    public DbSet<Player> Players { get; set; }
    public DbSet<Training> Trainings { get; set; }
    public DbSet<Enrollment> Enrollments { get; set; }
    protected override void OnModelCreating(DbModelBuilder modelBuilder)
    {
        modelBuilder.Conventions.Remove<PluralizingTableNameConvention>();
    }
}

这是一个Player模型:

public class Player
{
    public int ID { get; set; }
    public string FirstName { get; set; }
    public string LastName { get; set; }
    public DateTime BirthDate { get; set; }
    public DateTime JoinDate { get; set; }
    public virtual ICollection<Enrollment> Enrollemnts { get; set; }
}

知道我做错了什么吗?

尝试为数据库设定种子时出现 EF 异常

确保在您的 Web 配置中,databaseInitializer 元素指向IDatabaseInitializer(例如 SchoolInitializer而不是AZSContext

<contexts>
  <context 
      type="ContosoUniversity.DAL.SchoolContext, ContosoUniversity">
    <databaseInitializer type="ContosoUniversity.DAL.SchoolInitializer, ContosoUniversity" />
  </context>
</contexts>