0

最近、私は .NET で EF 4.1 の作業を開始し、今日まで自分のプロジェクトをセットアップしようとするまで、ある種の前向きな経験をしていました (これまでは、他の誰かが開始したプロジェクトに取り組んでいました)。

箱から出してすぐに動作したくないだけです。特別なことはしません。実際、最初はうまくいきましたが、突然動かなくなってしまい、4 時間も時間を無駄にしてからこの記事を書いています。

私のソリューションは 3 つのプロジェクトで構成されて い ます


DataAccessには、EntityModel.edmx および EntityModel.Context.tt ファイルが含まれています。
BusinessObjectsには、基礎となるすべてのオブジェクトを含む EntityModel.tt が含まれています。ADO.NET DbContext ジェネレーターを使用してオブジェクトを生成しました。
EntityModel.Context.tt の名前空間は BusinessObjects に設定されます。

WebApp と DataAccess は BusinessObjects プロジェクトを参照しています。BusinessObjects は何も参照しません。

(これを正しく設定したと思います。EntityModle.ttはedmxファイルを表示でき、ファイルを編集するとオブジェクトが作成されます。)

したがって、この時点で、プロジェクトはエラーなしでうまくコンパイルされます。

次のステップでは、EntityDataSource を default.aspx ページに追加します。データソース構成 (web.config からの接続) で接続を選択すると、エラーが発生します:この接続文字列で指定されたメタデータを読み込めませんでした。Web プロジェクトの再構築を検討してください... 指定されたメタデータ リソースを読み込めません。

以前は、接続文字列のスペルを間違えたり、モデル名を変更したりするときにこの問題が発生しましたが、今は何もしませんでした。app.config から接続文字列をコピーするように、edmx ファイルとその POCO を数回再作成しました。それは単に機能しません。

どんな助けでも大歓迎です。ありがとう。

4

1 に答える 1

0

web.config の接続文字列を次のように変更する必要があります。

connectionString="metadata=res://*/;provider=System.Data.SqlClient;provider...etc...

基本的に: metadata=res://*/ ; は、プロジェクト内のすべての参照アセンブリで埋め込みメタデータ ファイル (csdl、msl、ssdl) を見つけようとします。edmx ファイルのアーティファクトとして生成された埋め込みリソースを見つけやすくなります。

お役に立てれば。

于 2011-10-02T03:02:06.330 に答える