0

我已经尝试了所有现有问题中提到的解决方案,但没有一个对我有用。当我运行我的应用程序(运行没有错误)并检查 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
    }
}

还是不行。

4

2 回答 2

0

事实证明,这仅仅是因为我在我的 ID 字段中使用了以下格式:

private int AuthorID { get; set; }

当我应该使用时:

private int AuthorId { get; set; }

现在一切正常!

于 2013-04-15T09:32:14.103 回答
0

尝试将此添加到 Global.asax 中的 Application_Start() 方法中。

System.Data.Entity.DropCreateDatabaseAlways<BSContext>());

这将强制应用程序在您每次运行应用程序时创建数据库,所以不要把它留在那里!

于 2013-04-12T13:23:05.297 回答