.NET C# 上的无服务器数据库 [关闭]
Posted
技术标签:
【中文标题】.NET C# 上的无服务器数据库 [关闭]【英文标题】:Serverless database on .NET C# [closed] 【发布时间】:2020-08-11 07:57:14 【问题描述】:我正在从事一个小型桌面项目,该项目需要无服务器数据库结构,因为它将用于共享的 Dropbox 文件夹中,我无法在每台将要使用它的 PC 上安装 SQL Server。
我的想法类似于 Dropbox 中的数据库文件,有人可以在其中更新信息并将文件上传到 Dropbox 文件夹,其余用户只是从那里读取数据,但我不知道我应该使用什么数据库。
我阅读了一些选项,例如 SQLite,并制作了一个 XML 来存储数据,但我想知道什么是最好和最简单的方法。
提前致谢!
【问题讨论】:
我喜欢 SQL Server。您可以发送 mdf 文件,以便每个人都可以拥有该文件的副本。创建数据库然后从数据库中分离文件并制作副本非常容易。然后将文件重新附加到同一台服务器或不同的服务器。实际上,您可以将 mdf 文件的多个副本放在同一台服务器上(不同的数据库名称),这样每个用户都将拥有自己的数据副本,而不必发送文件。 但是你可以直接加载mdf文件并从中读取数据吗? 是的。您可以使用 System.Data.SqlClient 类连接到本地计算机或远程计算机上的数据库。您必须正确设置凭据。您可以免费下载 SQL Server,然后将一份副本放在服务器上,让每个人都使用具有不同数据库的同一服务器。或者在每个用户机器上安装 SQL Server 并将 mdf 副本发送给每个用户。 这就是问题所在,这个想法是在没有服务器的情况下使用somehting,并且没有在每台机器上安装sql server。如果可能的话 根据help center,要求我们推荐或查找场外资源(如 DBMS)的问题在这里是题外话。 【参考方案1】:你听说过 Litedb 吗?它创建一个带有 db 扩展名的文件。您可以从 nuget 包安装它。基本上是一个图书馆项目。 Mongo 喜欢 server less dB https://www.litedb.org/
从这里开始https://www.litedb.org/docs/getting-started/。您只需要在动手之前安装 nuget 包即可。
关于这篇文章https://www.google.com/amp/s/www.infoworld.com/article/3253115/how-to-work-with-litedb-in-c.amp.html 的更多信息无论如何,那里有很多,非常轻巧且易于使用。我在床上用手机浏览。如果我在我的电脑上,我会自己放一些 sn-ps 和示例。明天我将使用 litedb 创建 apsnet 核心项目,并通过链接到我的 github 更新此项目,您可以在其中找到完整的工作示例。
希望对您有所帮助。
【讨论】:
试过链接的例子,我想我会用这个。非常感谢您的帮助! 很好,很高兴我能帮上忙。想到一件事,如果您需要让不同进程访问数据库并初始化连接一次,请确保在连接字符串中将类型指定为共享。 ConnectionString 还提供其他解决方案,例如密码保护。 litedb.org/docs/connection-string 酷,我会调查的。再次感谢【参考方案2】:如果您无法在所有机器上安装 SQL Server,那么我已经使用并可以推荐 Sqlite。 (我之前在 .net 中编写过销售点/Till 软件,它使用 SqlLite 作为本地数据库,何时可以通过 Web 服务轮询 SQL Server。要求系统可以在没有互联网的情况下继续运行。这个至少是 10 年前。这些系统仍在使用中。)
无论如何,我发现 Sqllite 坚如磐石,速度足够快。 HERE's 使用 C# 的快速总结。一个提示是始终将命令行版本与您的应用程序一起分发,因此在早期阶段,您始终可以在命令窗口中访问数据库并检查发生了什么。
(我会在 cmets 中添加这个,但还没有足够的代表)
【讨论】:
以上是关于.NET C# 上的无服务器数据库 [关闭]的主要内容,如果未能解决你的问题,请参考以下文章
.net core 5 worker 服务的无密码连接字符串
共享 NFS 主目录上的无密码 ssh 不起作用(centos 7)[关闭]