2011-08-23 3 views
5

私はEF 4を使用しています(現在、自己追跡エンティティなし)。私は自分のエンティティの1つにいくつかの列を追加しました(それらのうちのどれもキーではなく、すべてがnullです)。Number of members in conceptual type does not match with number of members on object side type例外があります。
私は受け入れられた答えhereに従ってきましたが、私はそれがこのエンティティが私のedmxにもう表示されないということでした。私はDBからそれを再追加しましたが、同じ例外が発生しています。
問題は、実行中のアセンブリディレクトリにcsdl/ssdl/mslファイルをコピーしたことだと思います。私は更新されたファイルをコピーしたいと思いますが、それらは(EFプロジェクトのobj\Debug\edmxResourcesToEmbedフォルダに作成されていた)再作成されません。
これらのファイルを再度作成する方法はありますか?
ありがとうございます。エンティティフレームワーク - csdl、ssdl、およびmslファイルを作成します。

P.S:余分なコードを公開したくないので、まだ何も追加していませんが、必要な情報を追加してもらえます。正確に何が必要なのか分かりません。

+0

[Noich](https://stackoverflow.com/users/427653/noich)と同じことをしましたが、「出力アセンブリに埋め込む」を選択する代わりに「出力ディレクトリにコピー」を選択してくれました。 –

答えて

15

ですから、CSDLを作成したい場合は、SSDL AMD MSLファイルは、次の操作を行います

  1. ゴーあなたEDMXファイルへ。
  2. モデルを表示しているGUI画面をクリックします。
  3. プロパティウィンドウに切り替え(私はそれがGUIエリアからではなく、右ソリューションエクスプローラでファイルをクリックしてアクセスする必要があることを知りませんでした。
  4. Metadata Artifact ProcessEmbed in Output Assemblyを選択します。

完了したら、Debug\edmxResourcesToEmbedのファイルがobjまたはobj\x86の下に表示されます(ビルド定義によって異なります)。
説明が簡単だと思われるのですが、申し訳ありませんが、その指示が必要でした(msdnは偉大ではありませんでした助けてください)、他人を助けてくれることを願っています。

+0

It良い答えですので、私はあなたに投票を行い、それはmsdnで利用可能かどうか? – urveshpatel50

+0

MSDNには不明です。それはもう少し前だったが、それを助けてくれたのは、他の開発者だったと思う。 – Noich

+1

これは、VS Publishを使用してbinディレクトリにパブリッシュされていないCSDL、MSL、およびSSDLファイルに問題がある場合にも機能します。 :) –

関連する問題