2010-11-18 8 views
0

私はロード時間を短縮するためにhttp://msdn.microsoft.com/en-us/library/bb896240.aspxあたり事前に生成されたEFのビューを使用することを探しています。これはローカル環境で正常に動作し、 "metadata =〜/ bin/Models \ DSManagedCoModel.csdl |〜/ bin/Models \ DSManagedCoModel.ssdl |〜/ bin/Models \ DSManagedCoModel"の行に何かが含まれている接続文字列があります。 msl "。私がlocalhostを使ってデバッグするとき、それはうまくいった。それから127.0.0.1を使って試してみると、「指定されたメタデータパスは無効です」というエラーが表示されていました。 Azureクラウドプロジェクトのbinディレクトリ(実際はModelsサブフォルダ)にファイルをコピーするビルドイベントを追加して、これを127.0.0.1に修正しました。 Azureに公開しようとすると、「指定されたメタデータパスが有効ではありません」という同様のメッセージが表示されます。 あらかじめ生成されたEFビューをAzureで使用することはできますか?どうやって?Azureで事前生成されたエンティティフレームワークビュー

答えて

1

CSDLなどをリソースとしてファイルとして保存する代わりに埋め込むことをお勧めします。プロジェクトにCSDLなどのファイルを追加し、ビルドアクションとして「Embedded Resoruce」を指定します。次に、あなたはできる:

metadata="res://MyAssembly.dll/MyAssembly.bin.Models.DSManagedCoModel.csdl| //etc. 

Use Reflector to discover the true resource name. I wrote an article on connect strings which should help

これらのファイルは、実際には事前生成されたビューではありません。彼らはただのモデルです。しかし、EDMGenでビューを生成する必要があります。

+0

クレイグ、それはあなたが返信持って光栄です。あなたのブログとここの答えは非常に大きいリソースです...これは私をもっと近づけました...初めてそれはリソースを見つけることについて何か言った。それから、私がres:// */trickを試してみたら、それは見つかったが、 "EntityContainerの名前は一意でなければならない"と言います。これはedmxファイル間でユニークです(私はいくつか持っています)が、私はedmxに<! - CSDL content - >と書かれたセクションがあることに注意します。あなたが別のCSDL/MSL/SSDLファイルを使用している場合は手掛かりのように思える... – Vince

+0

、その後EDMXはもはや(上記のソースとして除く)で使用されず、実行時に参照すべきではありません。 –

+0

さらに詳しく見ると、CSDL(および他のファイル)の内容はEDMXにはっきりと埋め込まれています。実際、彼らは同一であるように見えます。私はどちらか一方を削除する必要があると仮定していますか?参考までに、私はEDMXのビルドアクションとしてEntityDeployを持っており、csdlと関連ファイルのための組み込みリソース(コピーしないでください)があります。一度EDMXで、一度CSDLで - – Vince

関連する問題