尝试为数据库做种时出现 EF 异常

Mar*_*cin 3 c# asp.net asp.net-mvc entity-framework

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

当我开始调试并尝试打开玩家列表的选项卡时,它相当于本教程中的学生选项卡,出现以下异常:

异常详细信息:“AzsPkInz.DAL.AZSContext”类型的对象无法转换为“System.Data.Entity.IDatabaseInitializer`1[AzsPkInz.DAL.AZSContext]”类型。

源错误:

  1. 第 19 行:public ActionResult Index()
  2. 第 20 行:{
  3. 第 21 行:返回 View(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>();
    }
}
Run Code Online (Sandbox Code Playgroud)

这是一个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; }
}
Run Code Online (Sandbox Code Playgroud)

知道我做错了什么吗?

Use*_*678 6

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

<contexts>
  <context 
      type="ContosoUniversity.DAL.SchoolContext, ContosoUniversity">
    <databaseInitializer type="ContosoUniversity.DAL.SchoolInitializer, ContosoUniversity" />
  </context>
</contexts>
Run Code Online (Sandbox Code Playgroud)

  • 感谢您的回答,我在数据库初始化程序中犯了错误。当我复制字符串时,我忘记将“AzsPkInz.DAL.AZSContext,AzsPkInz”从上下文类型更改为“AzsPkInz.DAL.AZSInitializer,AzsPkInz”从databaseInitializer。再次感谢,我浪费了几个小时来解决这个问题。:) (2认同)