2017-03-01 16 views
2

データベースの「バージョン」、すなわちのテーブルの最後の行のMigrationIdを取得したいとします。現在のMigrationIdを取得する

DbSetなしでEntity Framework Coreで未加工のSQLを実行することはできません。この情報はどのように入手できますか?

答えて

3

でEF Core 1.1では、以下を使用できます。

var currentMigration = dbContext.Database.GetAppliedMigrations().LastOrDefault(); 
+0

私は1.1を使用していますが、私はMicrosoft.EntityFrameworkCoreを使用して '追加@ghosttieデータベース – ghosttie

+1

にGetAppliedMigrations方法が表示されていません;' – bricelam

2

1つのオプションは、文脈に__EFMigrationsHistoryテーブルを追加することです。モデルを作成し、このような何か:

[Table("__EFMigrationsHistory")] 
public class MigrationHistory 
{ 
    [Key] 
    [MaxLength(150)] 
    public string MigrationId { get; set; } 

    [MaxLength(32)] 
    public string ProductVersion { get; set; } 

} 

がモデルにDbSetを追加します。

public DbSet<MigrationHistory> MigrationHistories { get; set; } 

そして、あなたは他のと同じように、今あなたがテーブルを照会することができた:

var lastMigration = context.MigrationHistories 
    .OrderBy(mh => mh.MigrationId) 
    .Last(); 
関連する問題