Connexion à la firebase database SQL CE à l’aide de SQLConnection

Question assez simple. Je construis une application qui lit les données d’une instance de SQL Server 2005. Je voulais exécuter des tests sur mon ordinateur portable (qui ne dispose pas de SQL 2005). Je cherchais donc à permuter dans une firebase database locale aux fins des tests.

J’utilise VS2008 alors la Compact Edition DB semblait un choix naturel. J’avais espéré échanger ma chaîne de connexion, mais il semble que cela me permettra uniquement de me connecter à la firebase database CE à l’aide de SqlCeConnection et non de SqlConnection. Quoi qu’il en soit, modificateurs que je peux utiliser dans la chaîne de connexion peut-être?

Il est en fait très possible d’utiliser SQL CE au lieu de SQL Server complet en modifiant uniquement les parameters de configuration: modifiez la chaîne de connexion et utilisez IDbXXX que possible les interfaces de la famille IDbXXX des interfaces spécifiques à la plate-forme SqlXXX et SqlCeXXX . Voir DbProviderFactories .

Soyez averti, cependant, des différences dans les dialectes SQL de ces deux plates-formes.

Oui, vous pouvez utiliser SQL Compact et / ou SQL Server en vous référant aux classes de base. Par exemple:

 IDbConnection Connection; if (Compact) Connection = new SqlCeConnection(); else Connection = new SqlConnection(); 

La chaîne de connexion doit pointer sur votre fichier de données pour SQL Compact, par exemple: "Data Source=urData.sdf;Persist Security Info=False;" . Plus d’ exemples ici .

Ce lien explique les différences entre SQL Server et SQL Compact , car elles ne sont pas identiques.

Tous les objects liés à SQL dont vous avez besoin pour une firebase database héritent de la base abstraite Db … (c’est-à-dire DbConnection, DbDataAdapter, etc.). Vous pouvez donc écrire une sorte de classe DatabaseManager qui, une fois instanciée, doit savoir si vous avez affaire à Sql ou Sql Ce. Ensuite, à partir de ce moment-là, vous ne vous occuperez que des objects de classe de base (DbConnection, etc.). De cette façon, tout ce dont vous avez besoin de changer à chaque fois, c’est l’instanciation de votre classe de gestionnaires.

Un autre avantage à le faire de cette façon est que si vous décidez plus tard de changer complètement de fournisseur, il n’ya pas beaucoup de code à changer.