0
私はasp.netコア2とefコア2でAPIプロジェクトを開発しています。すべてのテーブルを削除してから作成するたびに移行を行っていますが、変更が含まれます。ここでAsp.netコア2の移行が正しく動作しない
public class TicketingContext : DbContext
{
public TicketingContext(DbContextOptions<TicketingContext> options) : base(options)
{
Database.Migrate();
}
protected override void OnModelCreating(ModelBuilder modelBuilder)
{
}
public DbSet<User> Users { get; set; }
public DbSet<Country> Countries { get; set; }
public DbSet<TZone> TZones { get; set; }
public DbSet<Company> Companies { get; set; }
public DbSet<Point> Points { get; set; }
public DbSet<Bus> Buses { get; set; }
}
は私のスタートアップクラスであり、DesignTimeDbContextFactory
public class Startup
{
public Startup(IConfiguration configuration)
{
Configuration = configuration;
}
public IConfiguration Configuration { get; }
public void ConfigureServices(IServiceCollection services)
{
services.AddMvc();
}
public void Configure(IApplicationBuilder app, IHostingEnvironment env, TicketingContext context)
{
if (env.IsDevelopment())
{
app.UseDeveloperExceptionPage();
}
app.UseMvc();
}
}
そして、ここでは DesignTimeDbContextFactory実装は
public class DesignTimeDbContextFactory : IDesignTimeDbContextFactory<TicketingContext>
{
public TicketingContext CreateDbContext(string[] args)
{
IConfigurationRoot configuration = new ConfigurationBuilder()
.SetBasePath(Directory.GetCurrentDirectory())
.AddJsonFile("appsettings.json")
.Build();
var builder = new DbContextOptionsBuilder<TicketingContext>();
var connectionString = configuration.GetConnectionString("DefaultConnection");
builder.UseSqlServer(connectionString);
return new TicketingContext(builder.Options);
}
}
Database.Migrateメソッドとは何ですか? – Orhun
私はそれが自動移行に使用されていると思います –
あなたの 'Startup.cs'も表示できますか? –