Как мне создать строку EntityConnection для базы данных SqlServerCe ?
Я попытался выполнить пример MSDN на Как: создать соединение EntityConnectionСтрока
const string PROVIDER = "System.Data.SqlClient";
static string BuildEntityConnString(string dbFileName, string password) {
// dbFileName is filename without the extension
SqlConnectionStringBuilder sqlBuilder = new SqlConnectionStringBuilder();
sqlBuilder.DataSource = PROVIDER;
sqlBuilder.InitialCatalog = dbFileName;
sqlBuilder.IntegratedSecurity = true;
sqlBuilder.Password = password;
string providerString = sqlBuilder.ToString();
EntityConnectionStringBuilder entityBuilder = new EntityConnectionStringBuilder();
entityBuilder.Provider = PROVIDER;
entityBuilder.ProviderConnectionString = providerString
entityBuilder.Metadata = string.Format(@"res://*/{0}.csdl|res://*/{0}.ssdl|res://*/{0}.msl", dbFileName);
string connString = entityBuilder.ToString();
using (EntityConnection con = new EntityConnection(connString)) {
con.Open();
Console.WriteLine("{0} Entity String created.", dbFileName);
con.Close();
}
return connString;
}
Однако, но выдает ошибку:
A network-related or instance-specific error occurred while establishing a
connection to SQL Server. The server was not found or was not accessible. Verify
that the instance name is correct and that SQL Server is configured to allow
remote connections. (provider: Named Pipes Provider, error: 40 - Could not open
a connection to SQL Server)
После некоторого поиска я смог найти информацию о том, что Пример MSDN возвращает SqlClient .
Однако я не смог выяснить, как вернуть Sql CE-соединение.
Я попытался указать EntityConnection строку подключения SQL CE, которая позволяет мнечтобы открыть базу данных .SWF и прочитать ее условно:
const string PROVIDER = "Microsoft.SqlServerCe.Client.3.5";
static string BuildEntityConnString(string dbFileName, string password) {
EntityConnectionStringBuilder entityBuilder = new EntityConnectionStringBuilder();
entityBuilder.Provider = PROVIDER;
entityBuilder.ProviderConnectionString = myCeConnectionString;
entityBuilder.Metadata = string.Format(@"res://*/{0}.csdl|res://*/{0}.ssdl|res://*/{0}.msl", dbFileName);
string connString = entityBuilder.ToString();
using (EntityConnection con = new EntityConnection(connString)) {
con.Open();
Console.WriteLine("{0} Entity String created.", dbFileName);
con.Close();
}
return connString;
}
Эта версия вызывает другую ошибку:
Unable to find the requested .Net Framework Data Provider.
It may not be installed.
Что я могу делать не так?
Я нашел это связанное Исправление SQL Server , но это исправление должно быть чем-то, что я могу установить в своем коде, чтобы мой проект работал на компьютерах наших клиентов в других местах без сетевых администраторов.