Xamarin 实体框架迁移 - 表 'name' 已存在



所以,我有一个带有本地DB的Xamarin应用程序,我使用命令this.Database.Migrate()来应用任何挂起的迁移,起初它运行良好,但问题是,当我卸载该应用程序并再次安装时,该应用程序尝试执行相同的挂起迁移,我得到了错误"表"名称"已存在;。有没有办法忽略已经存在的表,因为我不想每次用户卸载应用程序时都删除他们的本地数据。我使用命令dotnet ef migrations add initial来创建迁移。

对于每个面临这个问题的人,我解决了使用SQLiteConnection创建方法的问题。您需要添加using SQLite;:

public static bool TableExists(string tableName)
{
var dbPath = Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.Personal), databaseName);
using (var db = new SQLiteConnection(dbPath))
{
var info = db.GetTableInfo(tableName);
if (info.Any())
{
return true;
}
}
return false;
}

相关内容

最新更新