2016-06-03 10 views
0

이 예 내가 읽은 않았다 지정된 메타 데이터 리소스를로드하고 entity framework Unable to load the specified metadata resource엔티티 프레임 워크 오류

나는 일반적으로 첫 번째 코드를 사용하고 아무 문제가 없었습니다 시도합니다.

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"/> 

ERROR :

,536 그러나 나는 EDMX

컨텍스트와 프로젝트 문제를 해결하는 데 필요한

'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에 연결되어 있고 다이어그램 edmx 및 모델에서 본 테이블 WorkerPublicExtended이 표시되지 않습니다. 실제로이 테이블의 이름이 실제 테이블 이름으로 변환되는 것을 볼 수 없습니다. 방법이있다?

답변

0

가능한 원인 : 1) 리소스 파일이 아무데도)는 연결 문자열의 app.config에서이 리소스 파일이 구성된 (당신이 프로젝트에서 발견 오유 그것을 가지고 확인합니다.

2) 데이터베이스에 연결한다고해서 테이블이 보이지 않으면 잘못된 데이터베이스에있는 것입니까? 다른 데이터베이스에 대해 EDMX가 생성되었거나 누군가가 테이블을 삭제하고 edmx를 재생성하지 못했습니까? : X

연결하려는 데이터베이스가 스키마, 프로 시저, 뷰 등 최신인지 또는 프로덕션 데이터베이스인지 200 % 확인한 경우 edmx 전체를 삭제하고 다시 만들고 테스트하고 다시 배포하지 않는 이유는 무엇입니까?

0

EMDX 모양의 세 부분이 연결 문자열에서 올바르게 표시됩니다.

  • 당신은 출력 디렉토리에 복사하는 모델의 MetadataArtifactProcessing 속성을 변경했을 수 있습니다

    , 또는
  • 당신은 다른 일을 변경 : 후 (당신의 문제를 해결하기 위해이 guideline 참조) 올바른 것으로이 부분을 두 번 확인 (예 : 어셈블리 이름)
  • 더 이상 작동하지 않는 EMDX를 포함하기 위해 컴파일 후 작업을 사용 중일 수 있습니다.

출처 here.

올바른 구문에 대해서도 전체 문자열을 확인하십시오.