实体框架核心2 - 代码首先不创建表

时间:2017-08-24 11:02:10

标签: c# entity-framework visual-studio-2017 .net-core-2.0

实体框架Core 2.0已经recently released,我正在使用它。

我在文件Startup.cs中的方法ConfigurationServices()中添加了以下行(My connectionstring很好)。

services.AddDbContext<AutoPartsContext>(options => 
options.UseSqlServer(Configuration.GetConnectionString("NetCore")));

,在Configure方法中,

using (var serviceScope = 
app.ApplicationServices.GetService<IServiceScopeFactory>().CreateScope())
{
var context = 
serviceScope.ServiceProvider.GetRequiredService<MyConntectionStringName>();
context.Database.Migrate();
context.Database.EnsureCreated();
}

这是创建数据库而不是表。当我在桌子上打电话时,

var a = _context.Users.Count();

抛出异常

  

无效的对象名称“用户”。   在System.Data.SqlClient.SqlConnection.OnError(SqlException异常,Boolean breakConnection,Action`1 wrapCloseInAction)

但是,如果我手动创建表,一切都很完美。我需要自动创建所有表格。

EF Core版本:2.0,数据库提供程序:Microsoft.EntityFrameworkCore.SqlServer,操作系统:Windows 10,IDE:Visual Studio 2017 Preview 2

1 个答案:

答案 0 :(得分:3)

您需要对此进行迁移,因为以前存在于核心EF中的数据库初始化程序不再可用。

请参阅Migrations - EF Core with ASP.NET Core MVC tutorial