15

かなり長いタイトルですが、うまくいけば一目瞭然です!

Visual Studio 2013 で、Entity Framework 5.0 とコード ファースト マイグレーションを使用して新しいプロジェクトを開始しています。

git を使用してプロジェクトを TFS Online に接続しました。TFS Online は、5 つの無料プロジェクト (BitBucket に似ています) のソース管理管理を提供しますが、Visual Studio と強力に統合されているため、TFS Online を試すことに興味があります。

私は Visual Studio 2013 でデータベース プロジェクトを使用したことがなく、これらすべてがどのように適合するかについての情報はほとんど見つかりませんでした。

私が達成しようとしているのは、2 つのプロジェクト (1 つは MVC .NET プロジェクト、もう 1 つはデータベース プロジェクト) を持つ単純な Visual Studio ソリューションを作成することです。私の目標は、コード ファーストの移行により、データベース プロジェクト (git ソース管理で管理されている) の sql スクリプトに必要な変更を加えることです。私の web.config は、ローカルの .mdb ファイルをデータベースとして指しています。これは、EF で update-database を実行すると更新されるものであり、これが問題だと感じています。

コードの移行に自分のデータベース プロジェクトを使用するように EF を指定するにはどうすればよいですか? また、その後、ソリューションをデバッグするときに、開発データベースをローカルの .mdb ファイルに自動的にビルドするにはどうすればよいですか?

4

1 に答える 1

16

Entity Framework Code Firstは、SQL スキーマを管理する方法です。真実の唯一の情報源は、コード ベースにあります。移行は、スキーマのあるバージョンから別のバージョンに移動する方法を追加します。SQL スキーマは、ビルド プロセスの副産物です。

SQL Server データベース プロジェクトは、SQL スキーマを管理する方法でもあります。真実の唯一の情報源は、SQL Server データベース プロジェクトにあります。スキーマ比較を使用して、あるバージョンから別のバージョンに移動するスクリプトを生成できます。


これらのテクノロジは意図と機能が重複しているため、これらを一緒に使用することはあまり意味がありません。エンティティ フレームワーク コード ファーストを使用している場合は、可能な場合 (および、状況に応じて機能が十分である場合) に移行を活用します。

移行を使用できない場合は、SQL Server データベース プロジェクトを使用してスキーマを管理し、それらをソース管理に保持できます。

:

これらを使用する場合は、SQL Server データベース プロジェクトの代わりとしてSQL Server Data Toolsをインストールすることを検討してください。データ ツールは、現時点では Visual Studio 2012 を実行する必要がある場合でも、これらのプロジェクトのより高度なバージョンです。Visual Studio 2013 が RTM になったら、Visual Studio 2013 のバージョンが利用可能になるのではないかと思います。

于 2013-10-07T11:21:04.090 に答える