2010-08-24 4 views
0

J'ai un fichier db local sqlce 3.5 dans ma solution VS2010 utilisée avec un modèle EF4. J'ai besoin de protéger ma base de données avec un mot de passe mais ne le sérialisez pas dans app.config. Je dois également configurer la taille maximale du fichier de base de données à sa valeur maximale autorisée qui est 4091 Mo lorsque j'essaie de définir la chaîne connectionString dans le code, je ne trouve pas un moyen de définir 'Max Database Size = 4091'.SQL CE 3.5 & EntityFramework

Voici une méthode que j'utilise pour construire la chaîne de connexion

private string GetConnectionString() { 
     // Specify the provider name, server and database. 
     string providerName = "System.Data.SqlServerCe.3.5"; 
     string dataSource = @"|DataDirectory|\Database\dbFileName.sdf"; 
     string password = "mypassword"; 
     // Initialize the connection string builder for the underlying provider. 
     SqlConnectionStringBuilder sqlBuilder = new SqlConnectionStringBuilder(); 
     // Set the properties for the data source. 
     sqlBuilder.DataSource = dataSource; 
     sqlBuilder.Password = password; 
     // Build the SqlConnection connection string. 
     string providerString = sqlBuilder.ToString(); 

     // Initialize the EntityConnectionStringBuilder. 
     EntityConnectionStringBuilder entityBuilder = new EntityConnectionStringBuilder(); 
     //Set the provider name. 
     entityBuilder.Provider = providerName; 
     // Set the provider-specific connection string. 
     entityBuilder.ProviderConnectionString = providerString; 
     // Set the Metadata location. 
     entityBuilder.Metadata = @"res://*/Models.Model1.csdl|res://*/Models.Model1.ssdl|res://*/Models.Model1.msl"; 
     return entityBuilder.ToString(); 
    } 

Quelqu'un at-il une idée que je devrais le faire? Merci beaucoup

Toute autre façon d'obtenir:

  • protection par mot de passe + mot de passe définis dans le code

  • fichier db maximum = 4091 Mo

Répondre

0

Ne pas utiliser le SqlConnectionStringBuilder, il est conçu pour les connexions SQL Server, pas pour SQL Server Compact. Il suffit de mettre

string providerString = @"Data Source=|DataDirectory|\Database\dbFileName.sdf;Password=abc;Max Database Size=4091"; 
+0

J'ai essayé mais je cette erreur les mots-clés non pris en charge « | DataDirectory | base de données \ \ dbfileName.sdf; mot de passe » – mfaqir

+0

devrait être mieux maintenant – ErikEJ

+0

Je reçois même erreur! S'il vous plaît aider – Priyanka

0

Je reçois la même erreur lorsque j'utilise constructeur DbContext et ont essayé d'utiliser des chaînes de connexion différentes. Une chaîne de connexion similaire fonctionne correctement si j'utilise SqlCeConnection. Cela fonctionne très bien

SQL_CONNECTION_STRING = String.Format("password={0};Persist Security Info=True;Data Source={1};Max Database Size=1024", scsb.Password, ccdaSetup.DataSource);