我正在尝试将(由 Entity Framework 生成的)表__EFMigrationsHistory
作为一个实体放入我的数据库上下文中:
在 Entity Framework 6 中这非常有效,但是有人在 EntityFramework 7 中尝试过吗?
我尝试的是,只添加一个新类 __EFMigrationsHistory
- 但它太容易了 - 数据库中已经有一个名为 __EFMigrationsHistory 的表
(感谢...)
然后我阅读了有关 HistoryRow 的信息,我将从中继承一个类。所以我创建了这个类
public class MigrationsHistory : HistoryRow
{
//... constructor etc.
}
开始迁移并且:我有两个迁移历史表(但只有原来的一个有效)
所以我继续阅读并搜索要实现/继承的接口(interface)和类。我找到了 SqlServerHistoryRepository
- 看起来不错。我创建了一个继承自 SqlServerHistoryRepository
的新数据库上下文(就像我在 EF6 中所做的那样)。 - 但这不是上下文类,所以我不能将它添加到 Startup.cs 中(就像我对默认应用程序上下文所做的那样)
所以我检查了 DbContext
是否可以在某处添加历史表(如在 EF6 中),但是没有任何东西可以将表添加到我的上下文中。
所以:有人已经尝试将迁移历史添加到他的上下文中了吗?有人成功了吗?
最佳答案
虽然我在 EF Core 2.0 上尝试了 bricelam 的回答但没有成功, 在 Microsoft.EntityFrameworkCore有一个方法;
// .NET Core 1.0 + Platform Extensions
// Microsoft.EntityFrameworkCore.Relational, Version=1.1.0.0, PublicKeyToken=adb9793829ddae60
namespace Microsoft.EntityFrameworkCore
{
public static class RelationalDatabaseFacadeExtensions
{
public static IEnumerable<string> GetAppliedMigrations(this DatabaseFacade databaseFacade);
}
}
调用如下;
var dbcontext = new DbContext();
IEnumerable<string> history = dbcontext.Database.GetAppliedMigrations();
关于c# - MigrationHistory 作为 Entity Framework 7 中 DbContext 中的实体,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40351163/