2012-02-29 14 views
1

私はSQLに、デフォルトのデータベースを参照するたびに、「私のDatabaseFactory.CreateDatabase()と 『SQL Server CEをエンタープライズライブラリ5に統合する方法DatabaseFactory?

例外

』タイプ データベース、キーのインスタンスを取得しようとしたときに、アクティベーションエラーが発生した」取得していますサーバーCE

問題が実際のSQL Server 2008 dbに接続できたために間違っていることが判明した.dll参照のみであるかどうかを確認しました。

ここに私の設定です:ここで

<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; 
    } 
} 

SOLUTION

変更設定プロパティ 解決:providerNameで= "システムは、 .Data.SqlServerCe。 3.5" 解決

+0

:providerNameで= "System.Data.SqlServerCe.3.5" –

+0

あなたをあなたの解決策であなたの質問を更新すべきです!質問を編集して「解決策:」セクションを追加して、使用する適切な設定を表示してください –

+1

いいえmarc_s、done :) –

答えて

2

SOLUTION

変更の設定プロパティ: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> 
関連する問題