2010-08-27 98 views
1

我創建了一個專注於C#3.5的控制檯應用程序,並添加了對System.Web,System.Configuration和Subsonic.Core的引用。也有配置文件在Visual Studio 2010中添加Subsonic 3.0.0.4

<?xml version="1.0"?> 
<configuration> 
    <configSections> 
    </configSections> 
    <connectionStrings> 
     <add name="UpdateCotswolds.Properties.Settings.Live_IntegraConnectionString" connectionString="Data Source=POSERVER;Initial Catalog=Live_Integra;Integrated Security=True" providerName="System.Data.SqlClient"/> 
    </connectionStrings> 
<startup><supportedRuntime version="v2.0.50727"/></startup></configuration> 

那麼我已經編輯Settings.ttinclude

const string Namespace = "Integra.Data"; 
    const string ConnectionStringName = "UpdateCotswolds.Properties.Settings.Live_IntegraConnectionString"; 

    //This is the name of your database and is used in naming 
    //the repository. By default we set it to the connection string name 
    const string DatabaseName = "Live_Integra"; 

而在TT文件拖動。

當他們跑,我發現了錯誤...

Error 2 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.TextTemplating47D0892A160210D689C6B90986A9AE0D.GeneratedTextTransformation.LoadTables() in c:\Programming\UpdateCotswolds\UpdateCotswolds\SQLServer.ttinclude:line 134 
    at Microsoft.VisualStudio.TextTemplating47D0892A160210D689C6B90986A9AE0D.GeneratedTextTransformation.TransformText() in c:\Programming\UpdateCotswolds\UpdateCotswolds\ActiveRecord.tt:line 23 
    at Microsoft.VisualStudio.TextTemplating.TransformationRunner.RunTransformation(TemplateProcessingSession session, String source, ITextTemplatingEngineHost host, String& result) 

這是有問題的行...

var pkColumn=tbl.Columns.SingleOrDefault(x=>x.Name.ToLower().Trim()==tbl.PrimaryKey.ToLower().Trim()); 

我猜我正在做一個愚蠢的錯誤並希望有人可以設置我直...提前

謝謝...

回答

2

看來,某個表公頃多於一個主鍵?你可以發佈你的模式嗎? 或者,也許你的PK和FK的名字完全相同,SS會變得困惑。也許你可以玩弄字符串[] ExcludeTables = new string [] {};屬性在「Settings.ttinclude」下找到,直到它工作併爲該表提供模式。

+0

這是一個很大的模式,我們不擁有它...有沒有一種方法來調試tt例程? – 2010-08-31 18:27:11

+0

顯然有http://msdn.microsoft.com/en-us/library/bb126338.aspx#Stepping – 2010-09-01 12:43:51

+0

這不容易:) - 希望現在你已經發現了問題? – DaveHogan 2010-09-01 14:45:48