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

时间:2014-12-27 18:35:43

标签: 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-model-for-an-asp-net-mvc-application

当我开始调试并尝试打开Players列表的选项卡时,它等同于这些教程中的Student选项卡,我得到以下异常:

  

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

     

来源错误:

     
      
  1. 第19行:公共ActionResult Index()
  2.   
  3. 第20行:{
  4.   
  5. 第21行:返回View(db.Players.ToList());
  6.   
  7. 第22行:}
  8.   

这是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; }
}

任何想法是我做错了什么?

1 个答案:

答案 0 :(得分:4)

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

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