获取当前的MigrationId

时间:2017-03-01 00:16:51

标签: c# entity-framework-core

我想得到"版本"数据库的数据,即MigrationId表中最后一行的__EFMigrationHistory

由于在没有DbSet的情况下无法在Entity Framework Core中运行原始SQL,我该如何获取此信息?

2 个答案:

答案 0 :(得分:3)

在EF Core 1.1中,您可以使用以下内容。

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

答案 1 :(得分:2)

您有一个选项是将__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();