11

エンティティ フレームワークで使用する SQLite 用の MigrationSqlGenerator はありますか? Devart から商用のものを 1 つだけ見つけました。

プロバイダー 'System.Data.SQLite' の MigrationSqlGenerator が見つかりません。ターゲット移行構成クラスで SetSqlGenerator メソッドを使用して、追加の SQL ジェネレーターを登録します。

これは私がしていることです: http://msdn.microsoft.com/en-gb/data/jj591621

4

5 に答える 5

8

移行も処理するジェネレーターを探している人のために、https: //sqliteef6migrations.codeplex.com で「System.Data.SQLite.EF6.Migrations」という nuget パッケージを見つけました。

パッケージをインストールしたら、移行の構成方法に次の変更を加える必要があります。

 public Configuration()
 {
    AutomaticMigrationsEnabled = false;
    SetSqlGenerator("System.Data.SQLite", new SQLiteMigrationSqlGenerator());
 }

完全なクラスは次のようになります。

namespace YourNamespace
{
    using System.Data.Entity.Migrations;
    using System.Data.SQLite.EF6.Migrations;

    internal sealed class Configuration : DbMigrationsConfiguration<YourContext>
    {
        public Configuration()
        {
            AutomaticMigrationsEnabled = false;
            SetSqlGenerator("System.Data.SQLite", new SQLiteMigrationSqlGenerator());
        }

        protected override void Seed(YourContext context)
        {
            //  This method will be called after migrating to the latest version.
        }
    }
}
于 2018-01-05T08:32:15.790 に答える
0

SQLite 用のシンプルな移行エンジンを作成するために、Android と同じ概念を使用できると思います。この投稿はその概念を示しています。もちろん、動作する MigrationSqlGenerator はありませんが、その概念は信頼性が高く便利です。

于 2014-03-10T20:41:51.210 に答える
0

SQLite についてはわかりませんが、他の人が提案したように作成しようとする場合は、このオープン ソース プロジェクトを使用して開始できます。それとも、これだけで十分だと思いますか?

http://www.codeproject.com/Articles/32977/Upgrade-framework-for-SQLite-databases

于 2014-03-17T03:18:34.673 に答える