Как интегрировать SQL Server CE с Enterprise Library 5 DatabaseFactory? - PullRequest
1 голос
/ 29 февраля 2012

Я получаю

"Произошла ошибка активации при попытке получить экземпляр типа База данных, ключ "" "

исключение с моим DatabaseFactory.CreateDatabase() всякий раз, когда я ссылаюсь на базу данных по умолчанию на SQL Server CE

Я попытался проверить, не связана ли проблема только с моей ссылкой .dll, что я смог доказать не так, потому что мне все еще удалось подключиться к реальной базе данных SQL Server 2008.

Вот мой конфиг:

<configSections>
<section name="dataConfiguration" type="Microsoft.Practices.EnterpriseLibrary.Data.Configuration.DatabaseSettings, Microsoft.Practices.EnterpriseLibrary.Data, Version=5.0.414.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" requirePermission="false"/>
    </configSections>
<dataConfiguration defaultDatabase="sqlCEDB"/>
    <connectionStrings>
        <add name="sqlCEDB"
           connectionString="Data Source=|DataDirectory|\sqlCEDB.sdf;Password='somepassword'"
           providerName="Microsoft.SqlServerCe.Client.3.5" />
</connectionStrings>

Вот как я создаю экземпляр базы данных:

private Database db;

protected internal Database DB
{
   get 
   {
      if (db == null)
         db = DatabaseFactory.CreateDatabase();
      return db; 
   }
}

РЕШЕНИЕ

изменить свойство конфигурации решено: providerName = "System.Data.SqlServerCe.3.5"

1 Ответ

2 голосов
/ 29 февраля 2012

РЕШЕНИЕ

изменение свойства конфигурации решено: providerName = "System.Data.SqlServerCe.3.5"

<configSections>
    <section name="dataConfiguration" 
             type="Microsoft.Practices.EnterpriseLibrary.Data.Configuration.DatabaseSettings, Microsoft.Practices.EnterpriseLibrary.Data, Version=5.0.414.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" 
             requirePermission="false"/>
</configSections>
<dataConfiguration defaultDatabase="sqlCEDB"/>
    <connectionStrings>
        <add name="sqlCEDB"
             connectionString="Data Source=|DataDirectory|\sqlCEDB.sdf;Password='somepassword'"
             providerName="System.Data.SqlServerCe.3.5" />
    </connectionStrings>
...