EF没有创建数据库

时间:2017-01-07 20:07:01

标签: c# entity-framework ef-code-first

我创建了这个项目

enter image description here

在已安装EF的数据中。 WebApi是我的启动项目,它引用了Business,它引用了Data。

在数据中我有这个:

namespace NewsWebsite.Data
{
    public class NewsWebsiteContext : DbContext
    {
        public NewsWebsiteContext():base("name=NewsWebsiteContext")
        {
            Database.SetInitializer<NewsWebsiteContext>(null);
        }
        public DbSet<Language> Languages { get; set; }
        public DbSet<Post> Posts { get; set; }
        public DbSet<PostLocale> PostLocales { get; set; }
        public DbSet<Role> Roles { get; set; }
        public DbSet<User> Users { get; set; }

        protected override void OnModelCreating(DbModelBuilder modelBuilder)
        {
            modelBuilder.Conventions.Remove<PluralizingTableNameConvention>();
        }
    }
}

在数据的app.config中,我有:

 <connectionStrings>
    <add name="NewsWebsiteDbContext" connectionString="Server=.\compname;initial catalog=NewsDb;integrated security=True;MultipleActiveResultSets=True;App=EntityFramework" providerName="Syste.Data.SqlClient"/>
  </connectionStrings>

我在webapi的web.config中完全相同(服务器名称正确)。

当我运行应用程序时,它不会创建数据库。为什么呢?

如果有人会遇到这个问题我有两个错误:

1)我有基础(&#34; name = NewsWebsiteContext&#34;)而不是NewsWebsiteDbContext

2)我有providerName="Syste.Data.SqlClient"而不是System.Data.SqlClient

我没有使用迁移。只是做

enable-migrations -EnableAutomaticMigration:$true然后update-database全部。

1 个答案:

答案 0 :(得分:2)

使用时

Database.SetInitializer<NewsWebsiteContext>(null);

EF不会创建自动数据库。 尝试添加迁移和更新数据库