2009-06-30 6 views
0

Je suis actuellement confronté à un problème de configuration Subsonic.subsonic dans visual studio design host

Ce que je veux réaliser est en utilisant l'accès de données subsonic dans une classe System.Web.UI.Design.ControlDesigner.

Cette classe est hébergée dans Visual Studio Environment et active les opérations de conception au niveau de System.Web.UI.WebControls.Control. Le seul problème est SubSonic semble toujours à la recherche de SubSonicSection dans la configuration de l'application sans se passer de la chaîne de connexion.

L'extrait de code correspondant:

using (SharedDbConnectionScope dbScope = new SharedDbConnectionScope(new SqlDataProvider(), ConnectionString)) 
{ 
Table1 _table1 = new Select().From<..().Where(...).IsEqualTo(...).ExecuteSingle<...>(); 

throws Exception sur la méthode ExecuteSingle() (section de configuration n'a pas été trouvé)

tout

using (SharedDbConnectionScope dbScope = new SharedDbConnectionScope(ConnectionString)) 
{ 

throws Exception sur les nouvelles SharedDbConnectionScope() (section de configuration n'a pas été trouvée)

S o la question est:
est-il un moyen de passer le temps d'exécution des paramètres pour contourner la section de configuration recherche que je ne veux pas ajouter une configuration spécifique subsonique à devenv.configuration

Merci

Répondre

0

Je ne Je pense que vous pouvez le faire en 2.x sans personnaliser les templates (ce qui peut évidemment poser des problèmes de support lors de la sortie d'une nouvelle version de SubSonic).

Désolé, ne sais pas 3.0

0

Je suppose que vous utilisez 2.x SubSonic en fonction de votre syntaxe de requête. Jetez un oeil aux deux messages suivants du forum qui devraient vous diriger dans la bonne direction. Ce que vous essayez de faire est possible, en fait SubCommander fait exactement cela, télécharger la source et jeter un oeil à la méthode SetProviderManually().

http://forums.subsonicproject.com/forums/t/1617.aspx

http://forums.subsonicproject.com/forums/t/1502.aspx

+0

qui a été la solution, grâce – csizo

0

La méthode pour utiliser la configuration du fournisseur d'exécution subsonique:

(exemple):

private void SetSubsonicProviderManually(string ConnectionString) 
{ 
//clear the providers and reset 
DataService.Provider = new SqlDataProvider(); 
DataService.Providers = new DataProviderCollection(); 

//instance a section - we'll set this manually for the DataService 
SubSonicSection section = new SubSonicSection(); 
section.DefaultProvider = __SubsonicProviderName__; 

//set the properties 
DataProvider provider = DataService.Provider; 
NameValueCollection config = new NameValueCollection(); 

//need to add this for now 
config.Add("connectionStringName", __ConnectionString__); 

//initialize the provider 
provider.Initialize(__SubsonicProviderName__, config); 

provider.DefaultConnectionString = ConnectionString; 

DataService.Providers.Add(provider); 

}