2

Entity Framework 4 でモデル ファーストのアプローチを使用して、データベースを実際の SQL (Data.SQLClient) から SQL CE (Data.ServerCe) に切り替えたいと考えています。

手動で行う方法を知っています:

プロバイダーをSystem.Data.SqlServerCe.3.5からSystem.Data.SqlClientに変更します。

  1. モデル コンテナ/コンテキストの接続文字列を変更します
  2. .edmx ファイルの変更 (Schema Namespace="Model1.Store" provider="..." 属性)

私が理解できないのは、ビルド/コンパイル時にその変更を行う方法です。そのため、構成に基づいて SQLClient と SQLServerCE を簡単に切り替えることができました。

同じ結果を達成する他の方法も高く評価されます! (SQL と SQL CE の間でデータ ソースを切り替えることができるモデルを 1 つ用意する)

4

1 に答える 1

2

この状況であなたにとって最善の方法かどうかはわかりませんが、問題を解決するためのこの方法を知っていることを確認したいと思います.

edmx のデザイナー ビュー内 (ソリューション エクスプローラーのファイルではなく) を (右) クリックし、[プロパティ] をクリックします。PropertyGrid で [メタデータ アーティファクト処理] を探し、値を [出力アセンブリに埋め込む] から変更します。 「出力ディレクトリにコピー」に。

ただし、これを変更すると、edmx がアセンブリに焼き付けられる代わりに、出力ディレクトリに 3 つの XML ベースのファイル (MyModel.ssdl、MyModel.csdl、MyModel.msl) が表示されます。

ビルド プロセスの一部として、これらのファイルへの変更を自由にスクリプト化できるようになりました。

また、接続文字列を次のように変更してください。

<add name="MyEntities" connectionString="metadata=.\MyModel.csdl|.\MyModel.ssdl|.\MyModel.msl; (..) />

私が言ったように、それがあなたの特定の問題に対する最善のアプローチになるかどうかはわかりません。ただし、私はそれを使用して、異なるデータベース スキーマに対して異なるビルドを生成します。できます。

于 2011-04-07T12:14:12.803 に答える