1

はい、エンティティ フレームワークを読んで試し ました 指定されたメタデータ リソースを読み込めません

私は通常、最初にコードを使用しますが、問題はありません。ただし、プロジェクトのトラブルシューティングを行う必要がありましたEDMX

環境:

public partial class x500Entities : DbContext
{
    public x500Entities()
        : base("name=x500Entities")
    {
    }

    protected override void OnModelCreating(DbModelBuilder modelBuilder)
    {
        throw new UnintentionalCodeFirstException();
    }

    public virtual DbSet<WorkerPublicExtended> WorkerPublicExtendeds { get; set; }
}

接続文字列:

<add name="x500Entities"
connectionString="metadata=res://*/CDISWorkerPublicExtended.csdl|res://*/CDISWorkerPublicExtended.ssdl|res://*/CDISWorkerPublicExtended.msl;provider=System.Data.SqlClient;provider connection string=&quot;data source=xserver;initial catalog=x500;persist security info=True;user id=xuser;password=xpassword;MultipleActiveResultSets=True;App=EntityFramework&quot;"
providerName="System.Data.EntityClient"/>

エラー :

タイプ 'System.Data.Entity.Core.MetadataException' の例外が EntityFramework.dll で発生しましたが、ユーザー コードで処理されませんでした 追加情報: 指定されたメタデータ リソースを読み込めません。

この行にヒットすると:

return context.WorkerPublicExtendeds.FirstOrDefault(x => x.upperIDSID == idsid.ToUpper().Trim());

完全な方法:

 public WorkerPublicExtended GetEmployee(string idsid)
 {
     using (x500Entities context = new x500Entities())
     {
         return context.WorkerPublicExtendeds.FirstOrDefault(x => x.upperIDSID == idsid.ToUpper().Trim());
     }
 }
  1. なぜこうなった?
  2. SQL Server ssms に接続しましたWorkerPublicExtendedが、ダイアグラム edmx とモデルで見たテーブルが表示されません。その名前が実際のテーブル名に変換されている場所がわかりません。これはどのように?
4

2 に答える 2

0

EMDX の 3 つの部分は、接続文字列で正しく見えます。この部分が正しいことを再確認した後 (問題のトラブルシューティングについては、このガイドラインを参照してください):

  • モデルの MetadataArtifactProcessing プロパティを [出力ディレクトリにコピー] に変更した可能性があります。
  • 他のもの (アセンブリの名前など) を変更した、または
  • コンパイル後のタスクを使用して、機能しなくなった EMDX を埋め込んでいる可能性があります。

ソースはこちらから。

また、文字列全体が正しい構文であることを確認してください。

于 2016-06-04T01:27:12.137 に答える
0

考えられる原因: 1) リソース ファイルがプロジェクトのどこにも見つかりません (このリソース ファイルは接続文字列の app.config で構成されています)。

2) データベースに接続しているのにテーブルが表示されないと言うとき、間違ったデータベースにいるのですか? 別のデータベース用に生成された EDMX がありますか、または誰かがテーブルを削除して edmx を再生成しませんでしたか? :バツ

接続しているデータベースがスキーマ、プロシージャ、ビューなどで最新のものである、または運用データベースであることが 200% 確実な場合は、edmx 全体を削除して、再作成、テスト、および再デプロイしてみませんか?

于 2016-06-03T23:38:43.000 に答える