【问题标题】:SQLite a good choice for C#? [closed]SQLite 是 C# 的好选择吗? [关闭]
【发布时间】:2011-05-17 20:51:33
【问题描述】:

在用 C# 编写的 WCF 服务中使用它会是一个不错的选择吗?我目前正在使用 FirebirdSql,但这给我带来了太多问题。文档和支持也很糟糕。

编辑:对不起,我应该在问这个问题时更具体。我的意思是 SQLite 对于 C# 中的 嵌入式 数据库是否是一个不错的选择。 MS SQL 不适合这个。

【问题讨论】:

  • 这需要一长串要求才能成为一个严肃的问题。
  • @pst:请在此处添加您的评论,而不是在问题文本中
  • 另外pst的编辑真的很奇怪。
  • 软化语言(稍微)可以,插入讨论不行。

标签: c# sqlite firebird-embedded


【解决方案1】:

SQLite 是适用于任何语言的绝佳平台,但是在 .NET 下我对它存在一些小问题。

  1. 它是本地编译的。这破坏了 .NET 的 .NET 的 AnyCPU 实现(即,您必须显式分发 32 位和 64 位版本的应用程序,并在 .csproj (MSBUILD) 文件中有一些手写规则,以根据您选择的内容选择不同的依赖项.
  2. 它有一些粘性线程问题。如果您尝试从多个地方(您的应用程序的多个实例)等使用相同的数据库,您将会遇到麻烦。这是可行的,但它基本上使用数据库/表锁定的简单形式来实现这一点,即根据您的计划,这可能是一个主要问题。

总而言之,我真的很喜欢 SQLite,但如果我能找到一个不需要可再分发的 (*cough*SQL Express*cough*),我会为 .NET 应用程序使用另一个嵌入式 DBMS。到目前为止,除了Raven DB,我还没有找到一个,但那是一个文档数据库。

编辑:注意,Raven DB 也仅对开源应用程序免费。它不适合专有应用程序,除非您愿意支付许可费用,因此在研究它时,请务必将其纳入您的预算。

【讨论】:

  • 在有人说之前,是的,您可以分发 32 位版本,因为它可以在 64 位下完美运行。
【解决方案2】:

SQL Express 总是很好用

【讨论】:

  • 是的,但是设置要求有时会让人无法接受。问题是广泛的。
猜你喜欢
  • 1970-01-01
  • 2017-11-24
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-03-18
  • 1970-01-01
  • 2011-03-19
  • 2010-10-20
相关资源
最近更新 更多