我按照本教程创建了自己的应用程序: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]'类型。
来源错误:
- 第19行:公共ActionResult Index()
- 第20行:{
- 第21行:返回View(db.Players.ToList());
- 第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; }
}
任何想法是我做错了什么?
答案 0 :(得分:4)
确保在您的网络配置中,databaseInitializer
元素指向IDatabaseInitializer
(例如SchoolInitializer
)而不是 a AZSContext
。
<contexts>
<context
type="ContosoUniversity.DAL.SchoolContext, ContosoUniversity">
<databaseInitializer type="ContosoUniversity.DAL.SchoolInitializer, ContosoUniversity" />
</context>
</contexts>