Ошибка дозвукового преобразования в шаблоне 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.