Xamarin Forms,Sqlite,EF Core 3,迁移和大量混淆

问题描述 投票:0回答:1

我有一个Xamarin Forms应用程序,我已经从仅使用Restful API切换为使用本地SQLite DB,它将使用此Dotmim.Sync - DB Sync'ing Framework进行同步(太好了!)。我在Xamarin表单项目中使用EF Core 3与SQLite进行交互。

我的问题是有关在SQLite上运行迁移或只是数据库更新。我已经阅读了一些有关不同方法的博客和论坛,但是从EF Core 1到EF Core 2都已经有好几年历史了,并且还有很多工作要做。

  1. https://forums.xamarin.com/discussion/101805/xamarin-android-entity-framework-core-2-and-migrations-讨论通过添加控制台应用程序运行迁移
  2. https://medium.com/@yostane/entity-framework-core-and-sqlite-database-migration-using-vs2017-macos-28812c64e7ef-此添加了Dot Net Cli工具参考。我尝试了这个并收到错误消息,但它也出现了EF Core 1.1]
  3. https://www.algoworks.com/blog/xamarin-forms-and-entity-framework-core/-给我更多问题,然后再回答。
  4. 还有更多链接,但我,这些证明了我所采取的所有不同方法的观点。

我想要实现的是:

  1. [当用户打开应用程序时,它会检查是否有数据库版本更新,或者应用程序已更新,并且知道它必须更新数据库。
  2. [当有数据库更新时,Dotmim.Sync框架控制Provisioning and Deprovisioning客户端(Xamarin Forms)上的数据库。这使您有机会运行EFCore迁移或SQL Sricpts以更新SQLite存储。
  3. 选项1

我想走EF核心迁移之路,因为主数据库已通过迁移进行更新,所以该应用程序将能够利用相同的脚本。如果可以在运行时在Xamarin表单上运行迁移,那就太好了。

Q1

。 EF Core是否可以与.netcore / netframework项目中的运行时一样在Xamarin Forms应用程序中运行迁移?

选项2

如果运行脚本需要正确的路径(我已经探究过,这意味着我需要能够比较Tool 1tool 2的SQLite架构),我在SQLite db3上尝试了一种工具,并且出错了。除非经过验证,否则不愿意为工具2付费。

Q2

。是否有SQLite比较工具来生成架构更改?

Q3

。还是部署在客户端上的sqlite的数据库更新路径是什么,那会更好,即删除数据库并重新创建它?然后重新同步数据库,以加载回所有用户特定的数据。数据丢失的可能性将很小,应用程序中的同步逻辑将很频繁,不确定每次用户数据更改事件之后是否发生,但是如果我们需要确保服务器永不同步,则可以这样做。

我希望我说清楚了。谢谢

我有一个Xamarin Forms应用程序,我已经从仅使用Restful API切换到了使用本地SQLite DB,它将使用此Dotmim.Sync-DB同步框架进行同步(太好了!)。我正在使用EF ...

sqlite xamarin.forms entity-framework-core database-migration ef-core-3.0
1个回答
0
投票

您需要如上所述创建the dummy console app。这是installing the tools的说明。之后,normal Migrations workflow应该可以在Xamarin上使用(如果没有,请确保let us know起作用。)>

Add-Migration MyMigration -P MyNetStandardClassLibrary -S DummyNetCoreApp
© www.soinside.com 2019 - 2024. All rights reserved.