C# 适用于Windows Phone 8的简单SD卡兼容数据库/NoSql解决方案

C# 适用于Windows Phone 8的简单SD卡兼容数据库/NoSql解决方案,c#,database,sqlite,windows-phone-8,nosql,C#,Database,Sqlite,Windows Phone 8,Nosql,有人知道我的应用程序可以使用适用于Windows Phone 8的良好数据库或NoSql引擎吗 我需要能够从SD卡打开只读数据库文件。它需要能够存储BLOB(png图像),因为我想用它来提供离线使用的地图块。数据库中需要存储100000个图像块 我已经尝试过via C#wrappers,但我似乎无法让它与SD卡上的数据库文件一起工作 Windows Phone应用程序访问SD卡上的文件时存在限制,但也有可能: Microsoft员工对我在使用SQLite时遇到的困难的反馈: Windows P

有人知道我的应用程序可以使用适用于Windows Phone 8的良好数据库或NoSql引擎吗

我需要能够从SD卡打开只读数据库文件。它需要能够存储BLOB(png图像),因为我想用它来提供离线使用的地图块。数据库中需要存储100000个图像块

我已经尝试过via C#wrappers,但我似乎无法让它与SD卡上的数据库文件一起工作

Windows Phone应用程序访问SD卡上的文件时存在限制,但也有可能:

Microsoft员工对我在使用SQLite时遇到的困难的反馈:

Windows Phone应用程序可以使用从SD卡读取特定文件类型 Microsoft.Phone.Storage API

我希望手机的SQLite实现会尝试打开 数据库使用标准的C文件API,而不是使用存储 对象,因此要求数据库位于Xap中或隔离 存储,无法访问SD卡上的数据库(这是 对于SQLite(适用于Windows应用商店应用程序),情况绝对如此)

来自SQLite SDK社区的反馈:

显然,对于一些C++技巧的人(SQULTE SDK)添加支持,应该是相当直接的(我有点生疏了):

答复:

对于我原来的问题:


从您的评论中,听起来一种非常不同的方法会更好

您的要求似乎是最终用户负责使用其台式机/笔记本电脑将数据放入卡中。然后将卡插入电话

如果是这样的话,那么最好的解决方案似乎是提供一个常规的桌面应用程序,它可以抓取zip文件中的图像,然后在目标卡上执行解压缩操作。本质上,应用程序负责操作

如果您需要关于这些图像的任何元数据,那么应该包括一个json或xml文件


这应该比在只读SD卡上处理数据库要简单得多。

对我来说,有效的解决方案是将其应用到Windows Phone 8上。我已经在GitHub上提供了经过调整的OpenMCDF-wp8解决方案:


我还解决了Windows Phone 8错误,该错误阻止Seek()正确处理从ExternalStorageFile类返回的流:

您可以尝试使用JSON/XML。将PNG图像存储为base64字符串。我不确定这个解决方案有多有效/可行。谢谢你的建议,但我认为它行不通。。。该文件将在多GB的大小范围内,因此无法将其全部加载到内存中。我猜根据需要挑选文本文件的小部分来使用是相当困难的。需要一些相当复杂的代码来设计引擎。然后可能需要提出一个索引等。然后在您知道之前,我已经开发了一个SQLite;)无法在Windows Phone上写入SD。访问是只读的。这就是为什么我只想要只读访问——“我需要能够从SD卡打开一个只读数据库文件”。也许作为SQLite问题的一个解决办法,您可以将图像拉到DB之外的SD卡上。然后,您可以将数据库复制到独立的存储上并在那里访问它;您可以继续访问SD卡上的图像。您可能需要注册应用程序的PNG扩展名(或者您可以将扩展名更改为应用程序特有的内容-例如“.nztopopng”或者类似的东西。谢谢你的建议-非常感谢。我不喜欢为Windows、Mac、Linux等创建一个常规的桌面应用程序。为了完成这项任务,我需要做很多工作,而且我无法访问所有的操作系统。但是,如果你仔细阅读上面关于这个问题的评论,我实际上是在看adap将openmcdf.sourceforge.net作为一个潜在的解决方案,因此只需要一个文件就可以高效地提供所有地图分幅。我目前正在尝试将OpemMCDF应用于Windows Phone,但目前仍在试验中。