C#和NoSql数据库

12

有没有适用于C#的特定NoSQL数据库?

谢谢!


5
考虑到协议通常非常简单且不依赖于特定的语言和平台,为什么会有某些协议特别适合或者不适合呢? - Marc Gravell
1
@Marc:对于SQL也可以这么说,但是相比其他关系型数据库管理系统,MSSQL在Linq-to-SQL方面得到了更好的支持。 - Timwi
1
@Daniel:你想通过NoSQL实现什么目标? - Dyppl
可能是.NET有哪些NoSQL解决方案?的重复问题。 - Alex Angas
我建议你也试试dbreeze。它具有非常先进的功能,无需依赖项,完全受控代码以及ACID支持。 - Behrooz
显示剩余4条评论
5个回答

18

我同意Marc在上面的评论,但我想你正在寻找的可能是像RavenDB这样的东西。它是专门针对.NET开发的,因此与其他数据库如CouchDB或MongoDB等相比可能更加“C#友好”。

然而,请记住,不同的NoSQL实现除了在开发过程中更自然地考虑哪种语言/平台之外,还具有不同的优缺点。可能很真实的是,对于.NET开发人员来说,RavenDB似乎更自然,但根据数据持久性需求,不同的数据库可能更适合手头的工作。

这里是我刚找到的快速比较一些其他功能的比较。正如您所看到的,每个工具的特殊之处不仅仅在于其.NET驱动程序。谷歌搜索NoSQL数据库比较将提供更多信息。如果您有更具体的数据持久性需求或可以详细阐述有关项目的问题,我们可以提供更多建议。

编辑:(针对您上面的评论)为了帮助您缩小选择范围,这是我迄今为止的经验:

在我提到的三个数据库中,我唯一在.NET中使用过的是MongoDB。对于.NET目的而言,它不太“自然”,但并没有任何困难或难以掌控之处。它很容易使用,并非常好地执行其既定任务。

我使用JavaScript代码而非.NET代码从CouchDB中使用过。它被认为是非常适合JavaScript的数据库,我一直在考虑直接从客户端AJAX调用连接到它。但从.NET内部同样也很容易。这真正体现了RESTful API的美妙之处。任何东西都应该能够像与任何服务交互一样轻松地与它交互。从.NET代码内部,类似RestSharp的东西可能使使用CouchDB变得非常容易,并感觉更具有.NET本地化特性。


这正是我所期望的答案。一个“C#友好”的解释甚至比原帖更好。 :-D - Daniel
2
仅就提供的链接中的比较简要说明一下;RavenDB 现在支持即席查询。 - Jay

8

我用过DBreeze,它的性能不佳,将文件作为其存储介质 - 一旦您达到超过10,000个相当复杂(即具有子项)的对象,就会导致极差的性能。 - code4life

7

谢谢你,听起来很有趣。 - Daniel

2

0

EgoDB 是另一个简单、线程安全、多进程的数据库,使用纯C#编写。


2
该项目现在看起来已经被放弃了。NuGet的最后一个版本是一年前,而且域名正在出售。 - Sudhanshu Mishra
https://github.com/hhblaze/DBreeze - juFo
这是我正在进行的一个项目,我已经在NuGet中添加了一条建议,不再使用它。我尝试了@juFo建议的DBreeze,并且成功了。 - Samuel

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接