我想创建一个表示文件/文件夹的类,它有一个父母或一个父母,可以包含文件/文件夹。因为我的文件夹是文件的特例。我的模型看起来像这样:
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; }
}
}
但是当我尝试使用这个类时,SQLite-NetExtension抛出了这个异常:&#34; DbFileModel.Files:OneToMany反向关系不应该是List或Array&#34;。
您能否告诉我如何使用SQLiteNetExtensions创建该类?
非常感谢: - )
答案 0 :(得分:1)
在与同一个类的关系上,你必须明确地声明这样的反向关系:
[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可以改善反向关系的发现,因此在将来的版本中可能不再需要这样做。