2011-02-04 64 views
5

我在使用带有CTP5的SQLite数据库时非常困难。我只是试图用SQLite执行这个MSDN example。但在该行如何让实体框架CTP5与SQLite一起工作?

var food = db.Categories.Find("FOOD"); 

我得到一个运行时异常:

System.Data.SQLite.SQLiteException(0X80004005):SQLite的errorno这样的表:分类

注意: app.config文件必须修改,如下所示:

App.config

<configuration> 
    <startup useLegacyV2RuntimeActivationPolicy="true"> 
    <supportedRuntime version="v4.0" /> 
    </startup> 
    <runtime> 
    <generatePublisherEvidence enabled="false" /> 
    </runtime> 
    <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, Version=1.0.66.0, Culture=neutral, PublicKeyToken=db937bc2d44ff139" /> 
    </DbProviderFactories> 
    </system.data> 
    <connectionStrings> 
    <add name="ProductContext" connectionString="Data Source=D:\CodeFirst.db;Version=3;New=True;" providerName="System.Data.SQLite" /> 
    </connectionStrings> 
</configuration> 
+0

也许在System.Data.SQLite站点的EF论坛是一个更好的地方问? http://sqlite.phxsoftware.com/forums/29.aspx – 2011-02-04 17:55:13

回答

4

在我看来,目前的SQLite.net不首先支持实体框架CTP5代码。将不得不等待这种情况发生。

3

System.Data.SQLite目前不提供CreateDatabase()和DeleteDataase()动态数据库创建。至少,this forum post约一个月没有答案。
我们已经提供了动态数据库创建和CTP 5支持,并计划在不久的将来在dotConnect for SQLite的CTP 5支持博客。
UPDATECTP 5 article可用。它包含一些关于数据库创建特性的注释,以及说明CTP 5使用情况的示例。

+0

Devart--热切地等待着博客文章。我可以找到代码优先ctp5的关于dotnet for sqlite的信息。没有!我甚至在Devart论坛上发布了帖子,并从Devart网站发送了一封电子邮件。 – 2011-03-01 22:32:20

+0

@ user327325,我们发布了这篇文章。查看答案的更新。 – Devart 2011-03-02 13:40:45

0

添加

Database.SetInitializer<MyDataContext>(null); 

为我工作。我首先用EF5代码Sqlite