c# - 轻量级灵活的数据持久化选项

标签 c# persistence

我原来是先用SQLCE先从LINQ to SQL开始,然后转到Entity Framework,但是好像SQLCE太不灵活了。 (现在我什至不能删除一个表来重新创建它,因为它说我不能删除 PrimaryKeyA 因为它被 PrimaryKeyA 引用......所以我对以后能够修改它没有太大信心)

我需要灵 active ,因为应用程序将通过多次迭代发布,并且数据需要能够相当容易地更改。较新版本的应用需要能够直接或通过转换从旧版本读取数据。

部署需要轻量级,低于 10MB,但最好低于 5MB。用户将(不应该)在应用程序外部修改数据,他们不需要知道或关心数据的存储方式.

高性能不是问题,它只是单个用户的数据。现在我很想说只要使用 XML 就可以利用 LINQ to XML。但我想知道是否还有其他建议。我想要一些可以轻松与普通对象相互转换的东西,XML 序列化是否适用于此?

我想我正在寻找的是一种简单的方法来持久化对象,这些对象可以通过对象更改轻松更新到新版本。性能不是一个大问题,但至少对于中小量数据来说应该是可以接受的。 (基本上是单个用户食谱的电子形式的 cooking 书)

最佳答案

我建议使用 System.Data.SQLite .它通过 ADO.net 接口(interface)为您提供简单、高性能的 SQL,而且它是轻量级的。它也有很好的文档记录,使用命令行 sqlite.exe 客户端和其他工具很容易排除故障。 SQLite 的一个显着优势是它的类型相对宽松,因此您不必花太多时间处理模式。

我不知道它是否支持 LINQ,但它非常好。

关于c# - 轻量级灵活的数据持久化选项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/871361/

相关文章:

c# - Windows Phone 8.1 - 转换器无法使用平台目标 ARM

c# - 将对象传递给方法并确定类型

C# UWP 通用 Windows 应用程序 - 调整形状大小

python - 持久内存/缓存

java - 使用 hibernate 保存集合字段

c# - 更新 IQueryable 对象中的值

c# - 返回 null 以避免 C# 中的方法出现未知异常

java - Hibernate:无法部署应用程序打包的持久性提供程序

angular - 我怎样才能在我的 Electron 应用程序中实现本地持久化?

java - Hibernate - 通过ID添加成员实体实例