2011-07-27 7 views
1

EF 4.0 사용. 두 개의 엔티티 모델 (둘 다 CoreEntities로 이름 지어졌지만, 다른 어셈블리와 차이 네임 스페이스에 있음).Entity Framework 메타 데이터 문제

두 프로젝트 모두를 참조하는 단일 프로젝트가있는 경우 EF는로드 할 적절한 메타 데이터 아티팩트에 대해 혼동스러워합니다. 즉시 어셈블리 중 하나에 대한 참조, 오류가 발생 중지하고 제거 등

The EntitySet name 'CoreEntities.MyEntities' could not be found. 

:

은 특히, 내가 좋아하는 오류를 얻을.

나는이 차이를 만드는 여부에 확실 해요,하지만 난 내 실재물 연결 문자열 genereate하려면 다음 코드를 사용하고 있습니다 :

public static string BuildEntityConnectiongString(string entityContextName) 
{ 
    //Format: metadata=res://*/{EntityContext}.csdl|res://*/{EntityContext}.ssdl|res://*/{EntityContext}.msl;provider=... 
    string rawString = System.Configuration.ConfigurationManager.ConnectionStrings["GenericEntityConnectionString"].ConnectionString; 
    return rawString.Replace("{EntityContext}", entityContextName); 
} 

어떻게 EF가 포함 된 메타 데이터를보고하는 조립 결정 하는가를 에서? 처음에는 모델을 포함하고있는 어셈블리를 항상 보게 될 것이라고 생각하지만 분명히 그것이 작동하는 방식은 아닙니다.

아이디어가 있으십니까?

답변

1

은 평소와 같이, 문서 얼핏 답을 제공합니다

http://msdn.microsoft.com/en-us/library/cc716756.aspx

기본적으로, 고해상도의 와일드 카드 : // * /를 EF는 메타 데이터에 대한 모든로드 된 어셈블리를 검색 할 수 알려줍니다. 그것이 일치하는 것으로 처음으로 발견되면 사용합니다.

필자의 경우 잘못된 것부터 찾는다.

이 해결 방법은 내 BuildEntityConnectiongString 함수 (및 사용중인 제네릭 연결 문자열)를 수정하여 어셈블리 이름을 명시 적으로 지정할 수있게하는 것입니다.

+0

해결책을 제시 할 수 있습니까? 나는 동일한 문제를 겪고 있으며 이것이 간단한 해결책 일 수 있다고 생각합니다. – Nugs

관련 문제