C#Application EntityFramework CodeFirst和数据库

时间:2013-07-18 18:12:30

标签: c# sql database entity-framework sqlite

我正在使用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有很多好处。

1 个答案:

答案 0 :(得分:1)

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

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

使用Nuget