2017-12-10 9 views
0

初回のみ動作しますが、...データベースと初回のみ動作するようです:Entityframeworkコア2.0は、移行が、私はEntityFrameworkコア2.0の移行システムの問題を得た

私はコマンドを使用する場合:add-migration InitialMigration

移行コードが生成され、すべて正常に動作します。しかし、私がdatabase-updateを使用すると、何も起こりません...

接続名の文字列をランダムな名前で変更した場合(例として123を追加)、コマンドdatabase-updateが動作し、この新しいデータベース...

他のマイグレーションをしようとすると同じ問題が発生します。何も起こらないので、マイグレーションコードを生成するためにデータベース名を再度変更する必要があります。

DbContext:

public class TestProjectDbContext : DbContext 
{ 

    public TestProjectDbContext(DbContextOptions<TestProjectDbContext> options) : base(options) 
    { 

    } 

    public DbSet<User> User { get; set; } 

} 

ユーザークラス(名前空間のTestProject.Data.Models)

public class User 
{ 
    public int Id { get; set; } 

    public string LastName { get; set; } 

    public string FirstName { get; set; } 

    public string Login { get; set; } 

    public string Email { get; set; } 

    public DateTime Created { get; set; } 

} 

接続文字列の形式(appsettings.json)

{ 
    "ConnectionStrings": { 
    "DefaultConnection": "Server=IPADRESS;Database=TestProject;User Id=xxxxxx; Password=xxxxxx;MultipleActiveResultSets=True" 
    }, 

感謝:)私は下図のようにあなたのコードは私の作品

あなたの代わりに、「アップデート・データベース」の「データベース更新」を実行していると信じている二一見した後

答えて

0

私はちょうどあなたのコードをつかんで、Startup.csにおけるサービスの初期化のノートでそれを自分自身をテスト:あなたが答えるため

var connection = @"Server=(localdb)\myhost;Database=myTestDb;Trusted_Connection=True;"; 
    services.AddDbContext<aDbContext>(options => options.UseSqlServer(connection)); 
+0

感謝を。 データベース構造が一致しないため、移行コードが生成されるはずです。 私のテストでは、テストクラスに新しい属性を追加しました。このため、このテストテーブルに新しい列を追加する必要があります。 データベースをコピーして接続文字列をこのコピーにルーティングすると、 "add-migration"コマンドが機能します...しかし、 "database-update"は... 次に接続文字列を最初のデータベースと "update-database"コマンドが機能します... 同じDB上で複数回コマンドを実行することはできません...かなり面倒です! –

+0

@BenChaff dbContextと更新しようとしているモデルクラスを投稿できますか?問題を再現するためにはそれらが必要になります。 – user1567453

+0

私はこれらの情報を使ってインサイトの投稿を編集しました。ありがとう –

関連する問題