私のデータベースにSPがあります。 EF4.1では、DbContext APIを使用します。Entity Framework EF4.1 - ストアドプロシージャが「コンテナ内に見つかりません」
データモデルから関数をインポートした後、ストアドプロシージャへの参照は開発環境で正常に動作します。しかし、サーバーに公開すると、次のようなメッセージが表示されて失敗します。FunctionImport 'SqlSearch'がコンテナ 'TallyJ2Entities'に見つかりませんでした。他のすべてのデータアクセスは正常に動作しています。
生産時には、EF4構成のいくつかの側面が忘れられているようです。
データベースは同一で、両方のサーバーがSQL 2008(ローカルはExpress SP1 10.50.2500、ホストはExpress RTM 10.50.1600)です。
私は、EDMXエディタを本番データベースに直接指摘し、更新しました。その結果は開発でうまくいきましたが、サーバー上で同じように失敗します。
他のよく似た質問here助けてください。他の誰かが同様の問題を抱えているようです。enter link description here
提案がありますか?
更新:私は、デバッグモードでホストを展開すると問題が解消されることがわかりました。 、それを
((IObjectContextAdapter)this).ObjectContext.MetadataWorkspace
var findFunction = metadataWorkspace.GetItems(DataSpace.SSpace)
.SelectMany(gi => gi.MetadataProperties)
.Where(m=> Equals(m.Value, "SqlSearch"))
.Select(m => "Found {0}".FilledWith(m.Value))
.FirstOrDefault();
私はfindFunction
結果をログに記録する場合、開発中ながら、それは、(リリースモードで)サーバがそれを見つけられませんでしたことが判明:
は私のDbContext派生クラス内では、私はこのコードを置きます見つかった。
このことに関して多くの疑問があるようです:http://stackoverflow.com/a/3501174/2942 http://stackoverflow.com/questions/4892926/entity-framework-4-pocos-stored-procedure- error-the-functionimport-could-not – friism
ありがとうございます。しかし、他のアイディアのどれも私のために働いていませんでした。 –