SQLite-Net扩展和FileModel

时间:2015-07-26 09:10:02

标签: c# sqlite sqlite-net-extensions

我想创建一个表示文件/文件夹的类,它有一个父母或一个父母,可以包含文件/文件夹。因为我的文件夹是文件的特例。我的模型看起来像这样:

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创建该类?

非常感谢: - )

1 个答案:

答案 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可以改善反向关系的发现,因此在将来的版本中可能不再需要这样做。