2012-02-09 4 views
3

내 DAL을 생성하기 위해 아음속으로 코어 T4 템플릿이 있습니다. 데이터베이스의 다른 스키마에 선택적으로 액세스 할 수있는 사용자가있는 연결 문자열입니다.다른 스키마에서 동일한 객체 이름으로 인해 T4 템플릿에서 아음속 변환이 실패했습니다.

두 개의 스키마 모두에 동일한 이름의 개체 (예 : 테이블)가있는 사용자의 DAL 부분 클래스를 생성하려고하면 문제가 발생합니다.

내 사용자가 MYSCHEMA1 및 MYSCHEMA2에 액세스 할 수 있고 이러한 스키마 모두에 COMMONOBJECT라는 이름의 개체가 포함되어 있으면 아음속 변환이 실패합니다.

여기에 내가 그 개체 중 하나를 삭제하지 않으

Running transformation: System.InvalidOperationException: Sequence contains more than one matching element 
    at System.Linq.Enumerable.SingleOrDefault[TSource](IEnumerable`1 source, Func`2 predicate) 
    at Microsoft.VisualStudio.TextTemplating1A7026BAC93607B56DDB080E7C2EC2DB.GeneratedTextTransformation.LoadTables() 
    at Microsoft.VisualStudio.TextTemplating1A7026BAC93607B56DDB080E7C2EC2DB.GeneratedTextTransformation.TransformText() 
    at Microsoft.VisualStudio.TextTemplating.TransformationRunner.RunTransformation(TemplateProcessingSession session, String source, ITextTemplatingEngineHost host, String& result) 

를 얻을 오류입니다.

내가 변환을 실행할 때 MYSCHEMA1.COMMONOBJECT와 같은 '정규화 된 이름'을 사용하도록 아음속을 구성 할 수있는 방법이 있습니까?

답변

2

tt 템플릿을 수정 한 다음 먼저 스키마를 찾은 다음이 템플릿을 사용하여 예제 (예 : myschema.employee

+0

감사합니다. 매력을 좋아합니다. –