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