2010-08-27 5 views
1

J'ai créé une application console centrée sur C# 3.5 et ajouté une référence à System.Web, System.Configuration et Subsonic.Core. également dans le fichier de configurationAjout de Subsonic 3.0.0.4 dans Visual Studio 2010

<?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> 

Je l'ai ensuite édité 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"; 

et traînés dans les fichiers tt.

Quand ils courent, je reçois l'erreur ...

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) 

Ceci est la ligne en question ...

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

Je devine que je fais une erreur stupide et nous espérons que quelqu'un peut me détromper ...

Merci à l'avance ...

Répondre

2

Il semble qu'une certaine table ha s plus d'une clé primaire? Pouvez-vous publier votre schéma? Ou peut-être votre PK et FK sont des noms exactement les mêmes et SS devient confus.

Peut-être que vous pouvez jouer avec la chaîne [] ExcludeTables = new string [] {}; propriété trouvée sous "Settings.ttinclude" jusqu'à ce qu'il fonctionne et fournir le schéma pour cette table.

+0

C'est un grand schéma et nous ne le possédons pas ... y at-il un moyen de déboguer la routine tt? –

+0

apparemment il y a http://msdn.microsoft.com/en-us/library/bb126338.aspx#Stepping –

+0

Ce n'est pas facile :) - Espérons que maintenant vous avez trouvé le problème? – DaveHogan

Questions connexes