3

親が1つまたはまったくなく、ファイル/フォルダーを含めることができる、ファイル/フォルダーを表すクラスを作成したいと思います。マイフォルダはファイルの特殊なケースだからです。私のモデルは次のようになります。

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 が次の例外をスローします: "DbFileModel.Files: OneToMany inverse relationship should not be List or Array".

SQLiteNetExtensions を使用してそのクラスを作成する方法をアドバイスできますか?

どうもありがとうございました :-)

4

1 に答える 1

2

同じクラスへの関係では、次のように逆の関係を明示的に宣言する必要があります。

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

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

逆関係の検出を改善する保留中の問題があるため、将来のリリースではこれが不要になる可能性があります。

于 2015-07-27T06:09:24.460 に答える