首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在SQLite.net中存储对象列表?

如何在SQLite.net中存储对象列表?
EN

Stack Overflow用户
提问于 2016-04-26 05:17:26
回答 1查看 15.8K关注 0票数 11

假设我有这两个对象

代码语言:javascript
复制
class Customer {
   [PrimaryKey]
   public string id;
   [??????]
   public List<int> addresses;
}

代码语言:javascript
复制
class Address {
     [PrimaryKey, AutoIncrement]
     public int id;
     public string street;
     public int number;
}

是否有一种方法可以使用SQLite.NET对象管理来保存Customers对象?因为我真的很难保存清单。

如果没有这样的方法,有没有某种我可以实现的事件或者我可以重写的方法,这样当一个对象加载时,代码就会触发?

我正在考虑在地址列表上方添加Ignore,当事件触发时,我可以使用SQLite.net从另一个表中加载地址的ids

提前感谢您所能提供的任何帮助

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-04-26 05:20:50

请看下面的答案here

您可以使用SQLite-Net Extensions library中的文本对象属性来执行此操作

例如,在您的Model类中:

代码语言:javascript
复制
public class Customer 
{
   [PrimaryKey]
   public string id;
   [TextBlob("addressesBlobbed")]
   public List<int> addresses { get; set; }
   public string addressesBlobbed { get; set; } // serialized CoconutWaterBrands
}

来自关于文本斑点属性的文档:

文本对象属性在保存时序列化为text属性,并在加载时反序列化。这允许将简单对象存储在同一个表中的单个列中。

文本对象属性在序列化和反序列化对象方面有很小的开销和一些限制,但它是存储基本类型或简单关系的List或Dictionary等简单对象的最佳方式。Text-blobbed属性需要一个声明的string属性,序列化对象存储在该属性中。

文本对象属性不能与其他对象有关系,也不能与其父对象有反向关系。

如果没有使用TextBlobOperations.SetTextSerializer方法指定其他序列化程序,则使用基于JSON的序列化程序。要使用JSON序列化程序,项目中必须包含对Newtonsoft Json.Net库的引用,该库也以NuGet包的形式提供。

希望这能有所帮助。

票数 15
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/36851232

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档