2010-04-30 6 views
0

내가 가지고있는 클라이언트 프로젝트의 클래스 라이브러리에서 EF 클래스를 호출하는 방법에 대해 매우 혼란스러워합니다. 동일한 프로젝트에 참여할 때 문제가 없었습니다. 이제 "지정된 메타 데이터 리소스를로드 할 수 없습니다"와 같은 오류가 발생합니다.클래스 라이브러리의 EF 클래스에 액세스 - 정확히 어떻게 클라이언트에서 연결 문자열을 구성/테스트합니까? (오류 발생)

나는 다양한 아이디어/제안 등의 변화에 ​​대해 뭔가를 클래스 라이브러리에서 연결 문자열 설정을 복사 & 클라이언트 프로젝트에 복사 할 수있는 연결 설정을의 App.config를 작성 (연결 문자열을 수정하는 방법을 다시 참조했습니다 출력 등)

질문 - 누군가가 별도의 프로젝트에서 EF 클래스 액세스를 얻는 방법에 대한 견고한 방법을 제공 할 수 있습니까? 이 팩토리 메소드 생성 된 엔티티 클래스에 대한 부분 클래스를 생성하고 추가 :

public partial class DbEntities : DbContext 
{ 
    private DbEntities(string connectionString) 
     : base(connectionString) 
    { 
    } 
    public static DbEntities CreateContext() 
    { 
     return new DbEntities("connection string copied from app.config"); 
    } 
} 

때마다를

감사

+0

'metadata = res : // * /'를 사용해 보셨나요? –

+0

아니요 - 전체 문자열을 의미합니까? – Greg

+0

이 문제에 대한 반복적 인 해결책을 얻었습니까? –

답변

0

이 나를 위해 일했다 (즉, 어떻게 든 클라이언트에 올바른 연결 정보를 얻을 수 있습니다) Db에 연결하고 DbEntities.CreateContext()를 사용해야합니다. "새로운 DbEntities()"는 설정 파일에서 연결 문자열을 읽으려고하기 때문에 작동하지 않습니다.

당신은 생성 된 파일에서 기본 생성자 "DbEntities()"를 삭제하거나 생성 된 파일을 편집하고 대신 "이름 = DbEntities"의 연결 문자열을 넣을 수 있습니다 :

public DbEntities() : base("name=DbEntities") { } 

을하지만,이 파일을 때 다시 생성됩니다 DB 모델을 업데이트합니다.

관련 문제