SQLite-Net 扩展和文件模型

SQLite-Net Extension and FileModel

我想制作一个 class 表示 file/folder,它有一个或 none 父级并且可以包含 files/folders。因为我的文件夹是文件的特例。我的模型如下所示:

namespace WPP3.Base.DataModel
{
  public class DbFileModel
  {
    [PrimaryKey]
    public string Path { get; set; }

    public DateTime DateCreated { get; set; }
    public DateTime DateModified { get; set; }
    public string DisplayName { get; set; }
    public bool isFile { get; set; }

    [ForeignKey(typeof(DbFileModel))]
    public string ParentID { get; set; }

    [OneToMany(null, null, CascadeOperations = CascadeOperation.All)]
    public List<DbFileModel> Files { get; set; }

    [ManyToOne(null, null, CascadeOperations = CascadeOperation.All)]
    public DbFileModel ParentFile { get; set; }
  }
}

但是当我尝试使用这个 class 时,SQLite-NetExtension 抛出这个异常:"DbFileModel.Files: OneToMany inverse relationship shouldn't be List or Array".

您能否建议如何使用 SQLiteNetExtensions 实现 class?

非常感谢:-)

关于与相同 class 的关系,您必须像这样显式声明反向关系:

[OneToMany(inverseProperty: "ParentFile", CascadeOperations = CascadeOperation.All)]
public List<DbFileModel> Files { get; set; }

[ManyToOne(inverseProperty: "Files", CascadeOperations = CascadeOperation.All)]
public DbFileModel ParentFile { get; set; }

a pending issue 可以改进反向关系的发现,因此在未来的版本中可能不再需要这样做。