0

私は最近、Entity Framework を学ぶための新しい個人プロジェクトを開始しました。私の最終目標は、データ管理に SQL コンパクトを使用し、ゲーム オブジェクトに Entity Framework を使用するデスクトップ ゲームを作成することです。EF を開始する方法が複数あることを実際には知らなかった (モデルが最初、コードが最初、データベースが最初)、私は最初にモデルの最も明白な選択をしました。

私は今、それをうまく使っていますが、特に開発後の懸念事項が 1 つあります。このゲームでの私の目標は、ユーザーが既存のデータを失うことなく最新バージョンに更新できるようにすることです。現在の問題は、すべての生成スクリプトが本質的に破壊的であることです (すべてを削除してから再作成します)。つまり、「運用」でユーザー SQLCE DB に対してそれらを実行できないため、別の計画を立てる必要があります。アクションの。

とはいえ、ベストプラクティスに関する推奨ソリューションはありますか? 以前のデスクトップ アプリでは、伝統的に XML/バイナリを使用してデータを格納していました。これにより、既存のデータに影響を与えずに「スキーマ」を簡単に更新できます (アプリのバージョン管理では、バージョンに応じて Load() を調整し、Save( ) は常に最新バージョンで保存されます)。

SQLCE を使用してこの問題を処理する際の推奨事項は何ですか?

4

1 に答える 1

2

正しく理解されていれば、必要なのはEFに付属する移行を利用することです。質問は一般的であるため、このリンクはあなたが必要としているものにあなたを最もよく導くはずです...

http://blogs.msdn.com/b/adonet/archive/2012/02/09/ef-4-3-code-based-migrations-walkthrough.aspx

必要に応じて手動で調整できる(そして、変更の各ポイントで段階的に適用されるコードの形で提供される)移行を使用すると、必要に応じて「シード」を提供することもできます。
つまり、必要なことのほとんどを実行し、古い互換性のないデータを削除、削除し、新しいデータをシードすることができ、すべてが特定の移行手順に関連している必要があります。

具体的には、アプリのデプロイでどのように機能しますか。これは少し複雑だと思いますが、これで開始できるはずです。その後、dbのバージョンが大幅に変更されるたびに、新しいコードの更新には、前回の更新以降のすべての移行が含まれます(または通常は1つで十分です。つまり、更新ごとに1つにする)と、新しいものを破棄または作成するためのコードです。

お役に立てれば、

于 2012-04-05T17:44:29.743 に答える