Mic*_*tum 34 .net database embedded-database
我(现在仍在)寻找在.net(c#)应用程序中使用的嵌入式数据库.警告:应用程序(或至少数据库)存储在网络驱动器上,但一次仅由1个用户使用.
现在,我的第一个想法是SQL Server Compact版.这真的很好地融合了,但它无法在网络上运行.
Firebird似乎有同样的问题,但.net集成似乎并不是真正的一流,而且很大程度上没有文档记录.
Blackfish SQL看起来很有趣,但没有.net版本的试用版.定价也行.
对.net 运行良好并且无需实际安装服务器软件即可在网络上运行的任何其他建议?
小智 10
我推荐Advantage Database Server(www.advantagedatabase.com).它是一个成熟的嵌入式数据库,具有很强的支持,除了.NET之外还可以从许多开发语言中访问."本地"版本是免费的,在您的应用程序中以DLL的形式运行,无需在服务器/网络共享上安装,并支持所有主要数据库功能.您可以将所有数据库和/或应用程序文件存储在网络上; 它并不关心数据的位置.
免责声明:我是ADS研发团队的工程师.我保证,它摇滚:)
听起来ADO/Access非常适合您的需求.它融入了MS堆栈,经验丰富,多用户.
您可以以编程方式创建一个DB,如下所示:
Dim catalog as New ADOX.Catalog
Catalog.Create("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=\\server\path\to\db.mdb")
Run Code Online (Sandbox Code Playgroud)
然后,您可以使用标准ADO.NET方法与数据库进行交互.
您可以使用firebird embeded,它只是您需要随应用程序一起提供的dll.
关于未记录的事情,这不是真的,firebird .NET驱动程序实现了ADO接口,所以如果你知道ADO你可以使用Firebird,基本上代替SQLConnection你会使用FBConnection等等,但我的建议是写一个数据访问层并使用代码上的接口,如下所示:
using FirebirdSql.Data.FirebirdClient;
public static IDbConnection MyConnection()
{
FbConnection cn = new FbConnection("...");
return cn;
}
Run Code Online (Sandbox Code Playgroud)
这个例子很简单,但你不需要更多.
我们使用firebird为我们的所有应用程序没有任何问题,你应该至少尝试一下.
这个问题现在已经很古老了,而且已经发生了很多变化。出于我的特定目的,LiteDB是首选。它是开源的,并有一个GitHub 存储库。
除此之外,SQLite基本上是嵌入式数据库的行业标准。有人尝试将代码移植到 .NET,但主要用例涉及本机库(例如sqlite Nuget 包)和/或 .NET P/Invoke 包装器(如Microsoft.Data.SQLite)。
| 归档时间: |
|
| 查看次数: |
7006 次 |
| 最近记录: |