Ошибка дозвукового преобразования в шаблоне T4 из-за одного и того же имени объекта в разных схемах

У меня есть основные шаблоны T4 в дозвуковой для создания моего DAL. Строки подключения, которые у меня есть пользователи, которые имеют выборочный доступ к различным схемам в базе данных.

проблемы возникают, когда я пытаюсь сгенерировать свои частичные классы 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)

я не хочу удалять один из этих объектов.

Есть ли способ, которым я могу настроить subsonic для использования "полностью определенных имен", таких как MYSCHEMA1.COMMONOBJECT, чтобы использовать при выполнении преобразований?

1 ответ

Решение

Измените ваш шаблон tt, сначала найдите схему, а затем используйте ее для добавления префиксов к объектам в ваших примерах - таблицах, например, myschema.employee.

Другие вопросы по тегам