我在Xamarin.iOS应用程序中使用Entity Framework Core。
在包含iOS应用程序和其他应用程序之间共享的代码(.netstandard 2.0)的核心项目中,我想知道是否需要迁移,以便我也可以执行其他一些操作。
这里是上下文:
public void Initialize()
{
using (var dbContext = new MyDbContext(m_dbContextOptions))
{
--> bool isNeeded = demoTapeDbContext.Database.IsMigrationNeeded()
demoTapeDbContext.Database.Migrate();
}
}
我发现最接近的方法是调用方法GetPendingMigrationsAsync()
并检查挂起的迁移量,但是我不确定这是否是在Entity Framework中进行这种检查的最安全方法:
public async Task InitializeAsync()
{
using (var dbContext = new MyDbContext(m_dbContextOptions))
{
bool isMigrationNeeded = (await demoTapeDbContext.Database.GetPendingMigrationsAsync()).Any();
demoTapeDbContext.Database.Migrate();
}
}
答案 0 :(得分:2)
我在 DbInitializer
中使用以下代码:
public static class DbInitializer
{
public static void Initialize(ApplicationDbContext context)
{
if(context.Database.GetPendingMigrations().Any()){
context.Database.Migrate();
}
...
答案 1 :(得分:1)