C#跨平台应用程序上的SQLite

ali*_*enn 16 .net c# sqlite mono orm

有人可以帮助/指导我在Linux(MONO)和Windows(.NET)上使用SQLite lib

在linux上我使用原生单声道sqlite客户端,在Windows上我使用http://sqlite.phxsoftware.com/

有没有办法定义这样的'使用'指令:

#if (linux)
  using Mono.Data.Sqlite;
#else
  using System.Data.SQLite;
Run Code Online (Sandbox Code Playgroud)

另一个问题是两种实现上的差异很小,例如:

cmd = new SqliteCommand(); // mono
cmd = new SQLiteCommand(); // sqlite.phxsoftware.com
Run Code Online (Sandbox Code Playgroud)

等待任何帮助

如果您知道更好简单的方法,那么非常感谢信息.

谢谢

Kri*_*son 5

您可以使用csharp-sqlite,它是 Sql-Lite 的 C# 端口。它非常活跃,基于 SqlLite 3.6.22 版本。请参阅 Miguel关于尝试加快速度的评论。


Arv*_*rve 1

有一个完全托管的SQLite 翻译。如果您使用它,那么您可以在 Mono 和 Windows 上使用相同的 DLL。

解决问题的另一种方法是创建自己的数据库接口,然后在单独的 DLL 中分别为 Mono 和 Microsoft .NET 实现该接口一次。(基本上与创建针对不同数据库运行的代码的方式相同)