2012-02-09 7 views
3

У меня есть базовые шаблоны T4 в дозвуковых для создания моего DAL. Строки подключения, у которых есть пользователи, которые имеют выборочный доступ к различным схемам в базе данных.Подсононические преобразования, не соответствующие шаблону 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

thanks..works как шарм –

 Смежные вопросы

  • Нет связанных вопросов^_^