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 可以改进反向关系的发现,因此在未来的版本中可能不再需要这样做。
我想制作一个 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 可以改进反向关系的发现,因此在未来的版本中可能不再需要这样做。