2012-02-21 9 views
4

正常に使用しているデータモデルを含むEFプロジェクトがあります。 「メタデータのアーティファクト処理」オプションは「出力アセンブリに埋め込む」に設定されています。.csdl/.ssdl/.mslの場所の指定出力アセンブリ内のメタデータファイル

.edmxファイルをプロジェクトのルートフォルダにEntityConnectionStringBuilderで使用されるメタデータ列に設定したとおり:私はプロジェクトを再構築した時

res://*/myProject.csdl|res://*/myProject.ssdl|res://*/myProject.msl

、私は.ecdmファイルを移動しますサブフォルダに:これは今エラーが発生

res://*/DataLayer/myProject/myProject.csdl|res://*/DataLayer/myProject/myProject.ssdl|res://*/DataLayer/myProject/myProject.msl

/DataLayer/myProject/と私は、メタデータに文字列を変更しました(「指定されたメタデータパスは有効ではありません」)、メタデータで指定したフォルダパスに何が問題なのかはわかりません。

私は.ecdmファイルをルートに戻すことができますが、以前はこの問題があり修正できなかったことがわかりました。明白な欠点がありますか?

答えて

6

私はそれを最後に試しました。

フォルダは '。'で区切る必要があります。 '/'ではありません。

メタデータの正しい形式は次のとおりです。

res://*/DataLayer.myProject.myProject.csdl|res://*/DataLayer.myProject.myProject.ssdl|res://*/DataLayer.myProject.myProject.msl 

うまくいけば、これは、しばらくの間、壁に頭を叩いてから、誰かが保存されます!

+1

私はちょっと頭をしかたしませんでした。ありがとうございましたEF! –

+1

メタデータファイルに使用する名前は、DotPeekでDLLを開き、「参考文献」セクションを参照してください。 .csdl、.ssdl、および.mslファイルのフルネームが表示されます。 – philu

関連する問題