2011-09-25 3 views
3

몇 가지 프로젝트에서 DAL 용 엔티티 프레임 워크를 사용했지만 지금 당장 작업하고있는 클래스 라이브러리 프로젝트에 edmx 파일이 있습니다.이 모든 것이 프로젝트에 있습니다. . 나는이 프로젝트를 다른 클래스 라이브러리 프로젝트에서 참조했는데 어떤 이유로 인해 .designer.cs 파일에 정의 된 엔티티 클래스에 액세스 할 수 없다. 컨텍스트 클래스에 액세스 할 수 없습니다. Visual Studio의 Object 뷰어에서 참조 된 프로젝트를 보면이 프로젝트의 엔티티가 나열되지 않습니다.엔티티 프레임 워크는 엔티티 클래스에 액세스 할 수 없습니다.

다른 프로젝트의 엔티티 클래스 나 datacontext에 액세스 할 수없는 이유를 아는 사람이 있습니까?

EDIT : 차이가있을 경우 SQL Azure의 데이터베이스와 연결됩니다.

답변

1

기존 edmx 파일을 삭제하고 새 edmx 파일을 다시 생성하여 해결할 수있었습니다.

분명히 오래된 사람이 이상한 상태에 빠졌습니다. 다시 작동하게 만드는 방법을 알 수 없었습니다.

0

Context 클래스 및 Designer.cs 클래스의 네임 스페이스를 확인하십시오.

+0

Nope. 네임 스페이스가 아닙니다. 엔티티 클래스 바로 아래의 designer.cs 클래스를 만든 경우에도 여전히 해당 엔티티 또는 컨텍스트에 액세스 할 수 없습니다. 심지어 edmx 파일을 새로 고치고 업데이트하려고했습니다. –

+0

네임 스페이스와 컨텍스트 클래스 이름이 같지 않은지 확인하십시오. –

1

이것은 두 가지 방법으로 발생할 수 있습니다. 하나는 Entity Model 클래스가 public임을 확인하는 것입니다. 다른 하나는 Entity Model 네임 스페이스가 Context 클래스와 일치하는지 확인하는 것입니다.

+0

모든 엔티티 클래스는 public입니다. 그리고 네임 스페이스도 아닙니다. 엔티티 클래스 바로 아래의 designer.cs 클래스를 만든 경우에도 여전히 해당 엔티티 또는 컨텍스트에 액세스 할 수 없습니다. 심지어 edmx 파일을 새로 고치고 업데이트하려고했습니다. –

1

몇 가지 프로젝트에서 DAL 용 Entity Framework를 사용했지만 지금 당장에 작업하고있는 클래스 라이브러리 프로젝트에서 edmx 파일을 가지고 있으며 그게 프로젝트에 있습니다. 이 프로젝트는 다른 클래스 라이브러리 프로젝트에서 연결 문자열이 설정되지 않았다는 것을 말하는 엔티티 클래스의 개체를 초기화 할 수 없습니다. 거기에 연결 문자열이있는 체크가 있습니다. \

0

상속 확인 DbContext 클래스, public 일 필요가 있습니다.

+0

또한 표시 할 네임 스페이스에 특성을 추가 할 수 있습니다. [assembly : InternalsVisibleTo ("ProyectName or namespace")]. 집계 지시문을 사용해야합니다. using System.Runtime.CompilerServices; 예 : using System.Runtime.CompilerServices; [어셈블리 : InternalsVisibleTo ("OtherProyect")] 네임 스페이스 Persistence.DAL.EntityFramework { 내부 클래스 HotelContext : DbContext { // 코드 } } –

+0

죄송 A는 형식의 코드를 사용하는 방법을 잘 모릅니다. –

관련 문제