2010-12-13 186 views
10

在使用SQLite和NHibernate成功後,我非常高興將它用於使用Entity Framework Code First進行測試。使用EF Code First的SQLite

如果您有一些示例連接字符串並設置了演示,那將非常棒,並且可以節省一些時間,從忙碌的一天開始。

非常感謝。

編輯:

值得一提的是,我通過EF「數據上下文」應用CRUD操作時,在調試過程中收到此錯誤:

無法確定提供者的名稱類型System.Data的」連接.SQLite.SQLiteConnection」。

<system.data> 
    <DbProviderFactories> 
     <remove invariant="System.Data.SQLite"/> 
     <add name="SQLite Data Provider" invariant="System.Data.SQLite" description=".Net Framework Data Provider for SQLite" 
    type="System.Data.SQLite.SQLiteFactory, System.Data.SQLite" /> 
    </DbProviderFactories> 
</system.data> 


<connectionStrings> 
    <add name="DataContext" 
     connectionString="Data Source=:memory:;Version=3;New=True;" 
     providerName="System.Data.SQLite" 
    /> 
</connectionStrings> 

希望EF能夠以這種方式與SQLite集成。雖然這個錯誤信息令人震驚地表明可能不是。

+0

你能解決你的問題了嗎? – codymanix 2011-05-23 10:26:15

回答

5

代碼首先應該在任何ADO.NET 3.5級別提供程序(這些實現實體框架功能)下工作得很好。

支持4.0的提供程序還添加了DeleteDatabase/CreateDatabase/DatabaseExists功能。

Code First除此之外不需要額外的提供者功能。

會發生什麼事是它查看Connection的類型,然後嘗試將其映射回提供程序及其提供程序工廠,以便它可以創建它所需的所有內容。

這將是值得檢查的,以確保您的GAC中安裝了最新的SQLLite提供程序,該提供程序支持3.5級功能。

6

您需要使用裝配合格的名稱:

<add name="SQLite Data Provider" 
    invariant="System.Data.SQLite" 
    description=".Net Framework Data Provider for SQLite" 
    type="System.Data.SQLite.SQLiteFactory, System.Data.SQLite, Version=1.0.66.0, Culture=neutral, PublicKeyToken=db937bc2d44ff139" />