繁体   English   中英

如何在Windows Phone Runtime中将数据存储在数据库中?

[英]How to store data in a database in Windows Phone Runtime?

经过3天的搜寻,我现在放弃!

我想将数据存储在Windows Phone Runtime应用程序中的数据库中,但找不到合适的数据库解决方案。

我检查了SQLite-net但它不支持类之间的简单关系。 因此,我无法在课程中定义项目列表。

然后,我安装了SQLite-net Extensions作为该问题的解决方案。 但是它没有适用于Windows Phone Runtime软件包。 它需要ISQLitePlatform实现作为SQLiteConnection()的参数,只有上帝知道在哪里可以找到正确的dll。

所以我的问题是,所有这些应用可用,它们使用什么数据库? 如何将数据存储在数据库中?

编辑

看来他们几个小时前解决了这个问题。 参见: https : //bitbucket.org/twincoders/sqlite-net-extensions/issue/27/error-while-adding-sqlite-net-extension-to

旧帖子

是。 你是对的。 默认情况下不包括此功能,您将必须自己做很多事情。 但是实现关系并不难:

// Query entity A
var AList = App.DB.Table<EntityA>().ToList();
if (AList == null || AList.Count == 0)
    return;
// Get entity B for each item
foreach (EntityA ea in AList)
{
    // I'm retreiving just a single element here.. of course you can easily pull a list here for one to many relationships..
    var eb = App.DB.Table<EntityB>().Where(b => b.EntityAIndex == ea.DBId).FirstOrDefault();
    if (eb == null)
        continue;
    ea.EntityB = eb;
}

但是SQLite是解决问题的方法,除非您不处理数百万条记录,否则从数据库中提取简单的关系将不会花费太多时间(我拥有3级关系,并且它们会被立即检索)。 您要做的就是在将对象添加到数据库时手动设置外键。 但这只是一行代码。

entityA.entityBId = entityB.DBId;

同样,编写代码以读取具有关系的实体也不是一件容易的事。 当然,您不需要手动编写任何内容,但这只是几行。

顺便说一句:我正在使用sqlite-net。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM