0
asp.net 코어 2 및 ef 코어 2를 사용하여 API 프로젝트를 개발하고 있습니다. 모든 테이블을 삭제 한 다음 생성하려고 할 때마다 마이그레이션을 수행하고 있지만 원하는 것은 변경 사항이 포함됩니다.Asp.net Core 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();
}
}
을 그리고 여기 Startup.cs에 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'도 표시 할 수 있습니까? –