2010-12-13 216 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" />