2009-05-26 4 views
1

Le code suivant s'exécute normalement dans SQLSERVER mais quand je change le web.config pour s'exécuter avec mySQL après le loadbykey la connexion est fermée.SUBSONIC MYSQL SharedDbConnectionScope TransactionScope

Y a-t-il une configuration à faire dans MYSQL pour changer ça ???

merci toute aide !!!

//----------------------------------------------------------- 
    string tipoBanco = System.Configuration.ConfigurationManager.AppSettings["tipoBanco"]; 
    string conexao = System.Configuration.ConfigurationManager.ConnectionStrings[tipoBanco].ToString(); 

    using (SharedDbConnectionScope scope = new SharedDbConnectionScope(conexao)) 
    { 
     //----------------------------------------------------------- 
     using (TransactionScope ts = new TransactionScope()) 
     { 
      Cargo c = new Cargo(); 
      c.LoadByKey(9999); 

      SubSonic.StoredProcedure sp = null; 
      sp = new SubSonic.StoredProcedure("sp_test"); 
      sp.Command.AddParameter("paramTabela", "zzz", DbType.AnsiStringFixedLength, null, null); 

      Convert.ToInt32(sp.ExecuteScalar()); 
     } 
    } 

le web.config

<SubSonicService defaultProvider="mysql" enableTrace="false" templateDirectory=""> 
    <providers> 
     <clear/> 
    <add name="mysql" type="SubSonic.MySqlDataProvider, SubSonic" 
      regexDictionaryReplace="Empresaendereco,EmpresaEndereco;Empresacontato,EmpresaContato;Franqueadoendereco,FranqueadoEndereco;Franqueadocontato,FranqueadoContato;Funcionarioacesso,FuncionarioAcesso;Funcionarioendereco,FuncionarioEndereco;Funcionariocontato,FuncionarioContato;Clienteendereco,ClienteEndereco;Clientecontato,ClienteContato;Clientehistorico,ClienteHistorico;Agendastatus,AgendaStatus;Historicostatus,HistoricoStatus" 
      fixDatabaseObjectCasing="true" connectionStringName="mysql" 
      generateRelatedTablesAsProperties="true" 
      fixPluralClassNames="false" 
      generatedNamespace="ModeloDados" 
      regexIgnoreCase="true" 
      removeUnderscores="false" 
      setPropertyDefaultsFromDatabase="true" 
      generateNullableProperties="true" 
      useExtendedProperties="true" 
      useUtc="true" /> 

</providers> 
</SubSonicService> 
+0

duplication possible de [Utilisation de transactions avec subsonic] (http://stackoverflow.com/questions/910863/using-transactions-with-subsonic) – Liam

Répondre

3

Je pense que votre TransactionScope() et SharedDbConnectionScope() sont dans le mauvais sens. Vous les avez dans l'ordre où ils étaient listés dans les documents sur le site Web de SubSonic, mais il y avait une discussion sur l'ancien forum SubSonic qui impliquait qu'ils devraient être l'inverse. Il est certain que je les utilise inversées (je viens de poster un extrait de mon code sur une autre réponse ici), mais je dois dire que je n'utilise que MSSQL ATM, et que je ne peux pas commenter sur MySQL.

+0

Merci kevinw, je l'ai mis dans l'ordre inverse et fonctionne ... – Valmir

Questions connexes