2012-02-09 24 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 like a charm – 2012-02-09 16:10:03

相關問題