2012-02-29 58 views
1

我發現了一個如何將SQL Server CE與Enterprise Library 5 DatabaseFactory集成?

「激活時發生錯誤,試圖讓 類型的數據庫實例,‘’鍵」

例外,我DatabaseFactory.CreateDatabase()每當我引用的默認數據庫爲SQL服務器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; 
    } 
} 

SOLUTION

變化config屬性 解決:的providerName =「系統.Data.SqlServerCe。 3.5"

+0

解決:的providerName = 「System.Data.SqlServerCe.3.5」 – 2012-02-29 02:53:11

+0

你應該用你的解決方案更新你的問題!編輯問題並在其中添加一個「SOLUTION:」部分,並顯示適用的配置文件 – 2012-02-29 05:53:14

+1

好的marc_s,done :) – 2012-02-29 06:02:12

回答

2

SOLUTION

變化config屬性解決:的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>