質問: 私は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/-より多くの質問があり、その後回答がありました。 もっとリンクがありますが、私は、これらは取られたすべての異なるアプローチの私のポイントを証明しています。 私が達成しようとしているのは: 1. ユーザーがアプリを開くと、DBバージョンの更新があるかどうか、またはアプリが更新されているかどうかが確認され、データベースを更新する必要があることがわかります。 2. DBの更新がある場合、Dotmim.Sync Frameworkは、クライアント(Xamarin Forms)でのデータベースのプロビジョニングとプロビジョニング解除を制御します。 EFCore MigrationsまたはSQL Sricptsを実行してSQLiteストアを更新する機会が与えられます。 **オプション1** EF Core移行パスに移行したいと思います。MasterDBはMigrationsで更新されているため、アプリは同じスクリプトを利用できます。実行時にXamarinフォームで移行を実行することが可能であれば、それは素晴らしいことです。 **Q1** 。 EF Coreは、.netcore / netframeworkプロジェクトの場合と同じように、実行時にXamarin Formsアプリでマイグレーションを実行できますか? **オプション2**スクリプトの実行が適切なパスである必要がある場合、私はこれを調査し、SQLiteスキーマがツール1とツール2を比較できるようにする必要があることを意味する場合、SQLite db3でツール1を試しましたが、エラーが発生しました。検証なしで機能しない限り、ツール2の代金を支払う意思はありませんでした。 **Q2** 。スキーマの変更を生成するSQLite比較ツールはありますか? **Q3** 。または、クライアントにデプロイされたsqliteのデータベース更新パスは何ですか、つまり、DBを削除して再作成するほうが良いでしょうか?次に、DBを再同期して、すべてのユーザー固有のデータをロードします。データが失われる可能性は最小限であり、アプリ内の同期ロジックは頻繁に発生します。ユーザーデータが変更されるたびに確実ではありませんが、サーバーが同期しないことを確認する必要がある場合は可能です。 これが明確になったことを願っています。ありがとう
回答: 前述のように、ダミーのコンソールアプリを作成する必要があります。 ツールのインストール手順は次のとおりです。その後、 通常のMigrationsワークフローはXamarinで機能するはずです(機能しない場合は必ずお知らせください )。 ``` Add-Migration MyMigration -P MyNetStandardClassLibrary -S DummyNetCoreApp ``` 次の方法を使用して、実行時に移行を適用できます。 ``` myDbContext.Database.Migrate(); ```