2011-01-01 6 views
1

私はEF4で新しいアプリケーションを構築しています。 EFコードは、リポジトリコードとともにそれ自身のアセンブリです。私はVisual StudioのMSTestでユニットテストをやろうとしていますが、始めに問題があります。私のコードがある -MSTestユニットテストでEF接続文字列が見つかりません

string s = "metadata=res://*/DataModels.MonitorUrlEf.csdl|res://*/DataModels.MonitorUrlEf.ssdl|res://*/DataModels.MonitorUrlEf.msl;provider=System.Data.SqlClient;provider connection string=\"Data Source=TOM-VAIO;Initial Catalog=WebMonDb4;Integrated Security=True;Pooling=False;MultipleActiveResultSets=True\""; 
var DbContext = new WebMonDb4Entities(s); 

WebMonDb4Entities EFデザイナーによって作成されたEFコンテキストです。私は接続文字列を変数に入れているので、テスト中に接続ファイルがどこにあるのかという問題に対処する必要はありません。文字列の内容は、EFデザイナーコードがあるプロジェクトのapp.configファイルからコピーされます。

エラーは "です。指定されたメタデータリソースを読み込めません。"私はいくつかの調査を行いましたが、これはうまくいくはずです。助言がありますか?

+0

これをご覧ください:http://stackoverflow.com/questions/689355/metadataexception-unable-to-load-the-specified-metadata-resource/2294308#2294308 – Rytmis

+0

答えがうまくいきました。実際には、非常にエレガントなコードです。このコメントを答えにすると、私はあなたに信用を与えます。 –

答えて

1

hereを文書としてあなたの問題は、あなたのEDMX参照に完全修飾名前空間を追加することにより、固定得るかもしれないように見えます。 :-)

0

ユニットテストプロジェクトの作業設定ファイルを追加/コピーできます。または、接続文字列要素をコピー/作成します。

そして、いくつかの研究から、EntityConnectionのインスタンスを作成して使用する方が良いことがわかりました。

また、同じトピックについてはdiscussionをご確認ください。

+0

どちらのオプションも機能しません。 configファイルを追加することは、それがうまくいくと思っていたものでしたが、そうではありませんでした。 –

関連する問題