如何在SQLite中作为实体成员插入/更新List <t>?

时间:2018-12-13 18:54:15

标签: c# database sqlite collections litedb

假设我有一堂非常简单的课:

public class myClass{
    public int Id {get;set;}
    public object SomeProperty {get;set;}
    public List<string> ListOfStrings {get;set;}
}

每当我尝试从数据库中检索myClass实体时,ListOfStrings都是空的,即使我已经准确地调试到CRU D 进程中以确保{{在实体上调用ListOfStringsInsert()方法之前,已填充1}}

1 个答案:

答案 0 :(得分:1)

要保存在集合中的实体应该具有ID属性,并且应该使用外键链接这两个实体。如果您使用的是实体框架,则可以这样定义类:

public class SomeEntity
{
    public int SomeEntityID {get;set;}
    public string Message {get;set;}
    public MyClassID {get;set;}
}

public class MyClass
{
    public int MyClassID {get;set;}
    public object SomeProperty {get;set;}
    public List<SomeEntity> ListOfSomeEntity {get;set;}
} 

然后您可以像这样检索您的实体:

var myClass = context.MyClass.Include(c=>c.ListOfSomeEntity)
              .Single(c=>c.MyClassID == 1);