0

私のアプリケーションに2つのコンテキストがあります。 WebApi Project -> ApiContext (inherited from IdentityDbContext) およびもう1つはInfrastructure -> Contextである。Asp.Netコア(DockerのSQL Server)で2つのコンテキストを使用したデータベースの移行

Docker Engine(microsoft/mssql-server-linux)のLinuxでMicrosoft SQL Serverの公式画像を使用します。

私はDbFactoryを書きました。私のコードは以下で見つけることができます。

ApiContext: 内部クラスApiContext:IdentityDbContext {公共ApiContext(DbContextOptionsオプション):ベース(オプション) {Database.EnsureDeleted()。 }

 protected override void OnModelCreating(ModelBuilder modelBuilder) 
     { 
      base.OnModelCreating(modelBuilder); 
     } 
    } 

コンテキスト

内部クラスコンテキスト:DbContext {公共コンテキスト(DbContextOptionsオプション):ベース(オプション) {Database.EnsureCreated()。私のインフラプロジェクトで }

public DbSet<Reservation> Reservations { get; set; } 

protected override void OnModelCreating(ModelBuilder modelBuilder) 
{ 
    base.OnModelCreating(modelBuilder); 
    modelBuilder.Entity<Table>().ToTable("Table"); 
} 

}

私はDbFactory

public class DesignTimeDbContextFactory<T> : IDesignTimeDbContextFactory<T> 
    where T : DbContext 
{ 
    public T CreateDbContext(string[] args) 
    { 
     IConfigurationRoot configuration = new ConfigurationBuilder() 
      .SetBasePath(Directory.GetCurrentDirectory()) 
      .AddJsonFile("appsettings.json") 
      .Build(); 
     var builder = new DbContextOptionsBuilder<T>(); 
     var connectionString = configuration.GetConnectionString("DefaultConnection"); 
     builder.UseSqlServer(connectionString); 
     var dbContext = (T)Activator.CreateInstance(
      typeof(T), 
      builder.Options); 
     return dbContext; 
    } 
} 

internal class ContextDesignTimeDbContextFactory : DesignTimeDbContextFactory<Context> 
{ 
} 

とWEBAPIプロジェクトに

言ったように、私が持っています0
internal class ApiContextDesignTimeDbContextFactory : DesignTimeDbContextFactory<ApiContext> 
{ 
} 

エンティティフレームワークのコアマイグレーションを使用したいと思います。私はApiProjectで

dotnet ef migrations add InitialCreate 

を実行すると は私が

つ以上のDbContextが見つかった取得(CMDを使用)。使用するものを指定します。 PowerShellコマンドには '-Context'パラメータを使用し、dotnetコマンドには '--context' パラメータを使用してください。

あなたは私がAsp.Netコア2.0とEntityFrameworkCore 2とドッキングウィンドウ上の2つのコンテキストでデータベースの移行を処理する方法を教えてもらえます。

答えて

0

あなたが使用DbContextを指定する必要があります

dotnet ef migrations add ArbitraryMigrationName -c YourDbContextName 
+0

だから私は右、コマンド二回、一回ApiContextため、一度コンテキストのことを使用する必要がありますか? – Cieja

+0

はい、まあまあです。 – Orhun

関連する問題