C#-多用户嵌入式数据库
作者:互联网
我的任务是为数据库找到合适的数据库,以用于即将到来的项目.我很难找到合适的比赛.我们的应用程序是.Net Framework 4.0 C#应用程序.
首先,我查看了SQLite,但由于在写入过程中SQLite锁定了数据库文件,因此我遇到了问题.
我有2个单独的应用程序,同时使用同一数据库在运行,我不确定何时编写.我试图仅等待锁释放,但这造成了一些数据丢失.所以我以为我会发明一个队列系统,但是两个应用程序都需要使用相同的队列…所以我以为我只会提供一个单独的Window服务.在我看来,所有这些听起来都像是传统的RDBMS.
我决定回溯,问自己“我使用的数据库正确吗?”.
有人知道可能满足我要求的数据库吗?
这是我的要求:
1.易于安装.这包括没有单独的“安装程序”,用户必须与我们的应用程序的安装分开运行.这就是首先让我相信我需要嵌入式数据库的原因,但是我认为也许有一些聪明的方法可以在安装程序中包括数据库安装.
>难以突破.这里最大的需求是它应该能够在命名管道上而不是TCP / IP上运行,以解决安全问题(或降低人们系统配置破坏我们应用程序能力的任何措施).我们的应用程序将始终在同一台计算机上运行.他们需要共享同一数据库,因此,如果涉及防火墙/安全性/“智能用户”,则使用TCP / IP可能会引起问题.
>在数据库上长时间运行的操作不应阻止其他用户读取/写入数据库.我曾考虑编写一些代码来处理此要求,但仍然使用Sqlite,但决定做更多的作业.
>许可:我们希望我们可以免版税地重新分配.我们不希望最终用户需要为我们依赖的数据库购买自己的独立许可证.
>大小限制:我们计划在这些数据库中存储大量数据,并且不接受任意限制.我们愿意接受操作系统对文件大小的限制. SQLite的大小限制(任何Windows计算机文件的大小限制)都大于2 TB.
>很高兴:能够使用实体框架.
>很高兴拥有:关系数据库.我们可能允许第三方应用程序读取我们的数据库,并且不介意它与文档或对象数据库是否是关系数据库.但是,我们愿意为满足我们所有要求的东西而努力.
到目前为止,我看过的数据库:
Raven数据库
SQLite的
立方体SQLite
SQL CE
Oracle和Microsoft SQL Server已获得许可,并且在那里很难进行重新分发.
我了解这些要求非常严格.我什至不确定是否有可用的现成解决方案.感谢任何人可以提供的帮助.
解决方法:
您需要使用SQL Server CE 4.0:
> xcopy部署
>支持加密
>可自由分配
>支持多标题(在您的情况下为多进程)仅从版本4.0开始
>支持4 Gb空间
>支持EF(甚至是CodeFirst)
>具有关系,并支持SQL Server T-SQL的子集
您有错误的误解,认为它需要许可:
Microsoft SQL Server Compact 4.0 is a free, embedded database that software developers can use for building ASP.NET websites and Windows desktop applications. SQL Server Compact 4.0 has a small footprint and supports private deployment of its binaries within the application folder, easy application development in Visual Studio and WebMatrix, and seamless migration of schema and data to SQL Server.
从Microsoft SQL Server Compact 4.0 (MS download)
除非4Gb不足以供您使用,否则您可以使用它.
SQL Server Express也免费,并且限制较少,但需要安装.
SQL CE和SQL Server之间的主要区别在于CE不支持Sotred Procedures.但是,如果您使用EF,那根本不是问题.
编辑有关许可的其他信息:
SQL Server Compact 4.0 is freely redistributable under a redistribution license agreement and application developers redistributing SQL Server Compact 4.0 can optionally register at the SQL Server Compact redistribution site. Registering will help the developers in getting information about SQL Server Compact critical security patches and hot fixes that can be further applied to the client installations.
在下载页面的底部
标签:embedded-database,sqlite,ravendb,c,database 来源: https://codeday.me/bug/20191201/2080228.html