0

我正在使用 EntityFramework 和 CodeFirst 模型开发 C# 应用程序。我想在每台机器和每个应用程序安装上都有一个本地数据库。我的意思是当用户 X 在他的机器上安装应用程序时,应用程序应该创建并使用本地数据库文件。我尝试使用 SQLite,但我没有运气让它在我的 app.config 中使用以下连接字符串和 dbFactory

<connectionStrings>
    <add name="FaceBotDb"
          connectionString=
"Data Source=|DataDirectory|FaceBotDb.sqlite"
          providerName="System.Data.SQLite" />
  </connectionStrings>
  <system.data>
    <DbProviderFactories>
      <add name="SQLite Data Provider"
            invariant="System.Data.SQLite"
            description="Data Provider for SQLite"
            type="System.Data.SQLite.SQLiteFactory, System.Data.SQLite" />
    </DbProviderFactories>
  </system.data>

我得到了“不变量必须是唯一的”这一类的例外。我的主要问题是在这种情况下 SQLite 是否是我的最佳选择。是否有任何其他数据库可以使用 EntityFramework 并将其文件存储在本地。请注意,我可以将 SQLite 与纯 ADO.NET 一起使用,但这只有在我别无选择的情况下才会发生,因为 EF 有很多好处。

4

1 回答 1

1

“Microsoft SQL Server Compact Edition”是 SQLite 的最佳替代品。它将文件存储在本地,几乎所有的 ORM 都支持它。

在您的项目中安装它的最佳方法是在http://nuget.org/packages/SqlServerCompact/使用 Nuget

于 2013-07-18T18:27:09.213 回答