我在 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()
并检查待处理迁移的数量,但我不确定这是否是在实体框架中进行此类检查的最安全方法:
public async Task InitializeAsync()
{
using (var dbContext = new MyDbContext(m_dbContextOptions))
{
bool isMigrationNeeded = (await demoTapeDbContext.Database.GetPendingMigrationsAsync()).Any();
demoTapeDbContext.Database.Migrate();
}
}
我在
DbInitializer
中使用以下代码:
public static class DbInitializer
{
public static void Initialize(ApplicationDbContext context)
{
if(context.Database.GetPendingMigrations().Any()){
context.Database.Migrate();
}
...
如果您将此行用于 sqlserver 的单个实例
然后不要在 LaunchSetting.json 的连接字符串中使用 --> MultipleActiveResultSets
它不会引发以下异常:Microsoft.Data.SqlClient.SqlException: