我已经尝试了所有现有问题中提到的解决方案,但它们都不适用于我。当我运行我的应用程序(运行没有错误),然后去检查SQLExpress数据库(通过SQL Management Studio)时,我可以看到没有表格从我的Code First类生成。
这是我的连接字符串:
<add name="BSContext" connectionString="Data Source=.\SQLEXPRESS; Integrated Security=SSPI; Initial Catalog=BSDomain; MultipleActiveResultSets=True" providerName="System.Data.SqlClient" />
我使用的是Win 8 Pro 64x,并使用VS 2012和SQL Express 2012.这是我的BSContext代码:
public class BSContext : DbContext
{
public DbSet<Event> Events { get; set; }
public DbSet<Location> Locations { get; set; }
public DbSet<Author> Authors { get; set; }
}
在我的application_start()中,我有以下内容:
Database.SetInitializer<BSContext>(new EventInitializer());
EventInitializer的代码如下:
public class EventInitializer : DropCreateDatabaseAlways<BSContext>
{
protected override void Seed(BSContext context)
{
// Seed Code
}
}
仍然无效。
答案 0 :(得分:0)
尝试将此添加到Global.asax中的Application_Start()方法。
System.Data.Entity.DropCreateDatabaseAlways<BSContext>());
这会强制应用程序在每次运行应用程序时创建数据库,所以不要将其留在那里!
答案 1 :(得分:0)
事实证明,这只是因为我在ID字段中使用了以下格式:
private int AuthorID { get; set; }
当我应该使用时:
private int AuthorId { get; set; }
现在一切正常!