在WPF中使用EF Code First和SqlCe

Tia*_*iax 5 c# wpf sql-server-ce ef-code-first

我正在尝试在我的WPF应用程序中使用EF Code First,其想法是在AppData/MyApp中创建一个SqlCe Db(如果没有),并将其与EF Code First一起使用.

当我尝试从它应该创建的数据库中读取数据时,它正在给出错误,但是当我检查数据库上下文对象时,我看到它正在尝试在SqlExpress中创建它.

首先,我如何设置它与CE而不是SqlExpress一起使用并设置文件位置?

我尝试在app.config中更改连接字符串,但无法使其工作(它没有创建sdf文件),而且我也不确定如何设置连接字符串路径到AppData文件夹,因为它在用户文件夹中(不是固定).

从未使用过SqlCe或EF Code First,所以欢迎任何帮助和赞赏.

提前致谢.

Chr*_*erd 6

经过大量的捣乱,我已经设法让它工作了.我的app.config有以下内容:

<?xml version="1.0" encoding="utf-8" ?>
<configuration>
  <configSections>
  </configSections>

  <connectionStrings>
    <add name="Database"
         connectionString="Data Source=Database.sdf"
         providerName="System.Data.SqlServerCe.4.0" />
  </connectionStrings>

  <system.data>
    <DbProviderFactories>
      <remove invariant="System.Data.SqlServerCe.4.0" />
      <add name="Microsoft SQL Server Compact Data Provider 4.0"
           invariant="System.Data.SqlServerCe.4.0"
           description=".NET Framework Data Provider for Microsoft SQL Server Compact"
           type="System.Data.SqlServerCe.SqlCeProviderFactory, System.Data.SqlServerCe, Version=4.0.0.0, Culture=neutral, PublicKeyToken=89845dcd8080cc91"/>
    </DbProviderFactories>
  </system.data>

</configuration>
Run Code Online (Sandbox Code Playgroud)

在部署中使用DbProviderFactory也会有所帮助.这将允许用户使用SQLCE 4不运行它的安装程序(在这里为您提供本地binares还有,一些信息:http://erikej.blogspot.com/2011/02/using-sql-server-compact- 40-with.html).