私の接続文字列は次のとおりです。
<add name="RollCallDBEntities" connectionString="metadata=res://System.Engine/RollcallNS.csdl|res://System.Engine/RollcallNS.ssdl|res://System.Engine/RollcallNS.msl;provider=Devart.Data.Oracle;provider connection string="User Id=user;Password=password;Server=127.0.0.1;Direct=True;Sid=ORCL"" providerName="System.Data.EntityClient" />
私のコードは次のとおりです。
using (var db= new RollCallDBEntities()) //ok
{
var query = db.TBL_ROLLCALL.ToList(); //Unable to load the specified metadata resource.
}
私のアセンブリ:
System.Engine
誰にもアイデアはありますか?
これらのリンクは私の問題を解決しませんでした:
MetadataException:指定されたメタデータリソースをロードできません
エンティティフレームワーク指定されたメタデータリソースをロードできません
Entity Framework:指定されたメタデータリソースをロードできません
指定されたメタデータリソースをロードできません
http://forums.devart.com/viewtopic.php?t=22092 を参照してください。
それでも解決しない場合は、次を指定してください。
このような例外が発生していました。問題は、.edmx
ファイルとEFの名前の変更を忘れたWeb.config
ファイルの接続文字列:
metadata=res://*/MyModel.csdl|res://*/MyModel.ssdl|res://*/MyModel.msl;
これを解決した最も簡単な解決策は、objフォルダーを削除する binフォルダーと同じレベルにあり、アプリケーションを再実行するでした。必要以上に長い
WebSiteレベルのプロジェクト、DataAccessレベルのプロジェクトなどの複数のプロジェクトを含む1つのソリューションでEntityFramework 6.0を使用しました。私のソリューションでは、DataAccessレベルのプロジェクトで移行を行う必要があります。
パッケージマネージャーコンソールでAdd-Migrationコマンドを実行すると、「指定されたメタデータリソースを読み込めません」と表示されます。
最後に、WebSiteレベルのプロジェクトを「スタートアップ」プロジェクトとして設定し、このトリガーが上記の例外であることがわかりました。システムは最初にスタートアッププロジェクトの接続文字列設定を自動チェックするようです。そして、WebSiteレベルのプロジェクトで設定されたデータ接続文字列は
"metadata = res:// /ApplicationEntities.csdl|res:///ApplicationEntities.ssdl | res://*/ApplicationEntities.msl; provider = System.Data.SqlClient; provider connection string = 「データソース= .;初期カタログ= YourDatabaseName;統合セキュリティ= True; MultipleActiveResultSets = True; App = EntityFramework」
これは最初のコードでは正しくありません。
正しい接続文字列は次のとおりです。
「データソース= .;初期カタログ= YourDatabaseName;統合セキュリティ= True」
結論として、ソリューションの「スタートアップ」プロジェクトのweb.configの「connectionStrings」セクションを常に最初に確認してください。
Devart mysqlconnectで同様の製品を使用しました-これが役立つかもしれません。
.edmlファイルを含み、他のプロジェクトから参照されるEFModelsというプロジェクトがあります。
EFModelsを参照したプロジェクトのリリースバージョンにはEFModels.dllが含まれていますが、EfModels.dllのデバッグバージョンよりもサイズがはるかに小さい(127kb対437kb)ことに気付きました。 EFModels.dllをデバッグバージョンからリリースバージョンに移動すると、何らかの理由でリリースバージョンにssdlなどが埋め込まれなかったため、問題が解決しました。
また、この問題に遭遇しました。これは、EDMXファイルを含むプロジェクトを参照するのを忘れたためです。
また、この問題に遭遇しました。これは、Entity Framework Model FirstからEntity Framework Code Firstに移行し、EDMX接続文字列を「通常の」接続文字列に変更するのを忘れていたためです。