gpt4 book ai didi

c# - 由于不同模式中的对象名称相同,T4 模板中的亚音速转换失败

转载 作者:行者123 更新时间:2023-11-30 17:13:59 25 4
gpt4 key购买 nike

我有 subsonic 中的核心 T4 模板来创建我的 DAL。我拥有的用户可以选择性地访问数据库中的不同模式的连接字符串。

当我尝试为有权访问两个模式的用户生成我的 DAL 部分类时,问题出现了,这两个模式都具有同名的对象(比如表)。

因此,如果我的用户有权访问 MYSCHEMA1 和 MYSCHEMA2,并且这两个模式都包含一个名为 COMMONOBJECT 的对象,则 subsonic 中的转换会失败。

这是我得到的错误

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?

最佳答案

修改您的 tt 模板,首先找出模式,然后使用它来为示例中的对象添加前缀——表格,例如myschema.employee

关于c# - 由于不同模式中的对象名称相同,T4 模板中的亚音速转换失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9214152/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com