4

方法: sqlite-net-extensions でネストされたリスト
を実行する
私が遭遇した問題は、sqlite-net-extensions に関連するものではありませんでしたが、文脈のために質問を続けています。

[古い質問] TwinCoders SQLite-net 拡張機能に問題があります。
Series オブジェクトをデータベースに挿入しようとしています:

Db.InsertWithChildren(SelectedSeriesObject,recursive:true)メソッドを使用しています。
Series オブジェクトは、その属性に応じて追加されます。
すべてのエピソードも追加されていますが、問題はありません。

問題は BaseSeason です。
1 つの Season オブジェクトのみを挿入します。これは、(何らかの理由で) Series の Seasons リストの最後の Season オブジェクトです。

public class BaseSeries : BaseMedia
{
[PrimaryKey, AutoIncrement]
public int Id { get; set; }

[Indexed]
public int ShowId { get; set; }

public string FirstAirDate { get; set; }
public string LastAirDate { get; set; }
public string Status { get; set; }

[OneToMany(CascadeOperations = CascadeOperation.All)]
public List<BaseSeason> Seasons { get; set; }
/// <summary>
/// TvShow = 0, Anime = 1
/// </summary>
public int SeriesType { get; set; }

}

public class BaseSeason
{
[PrimaryKey, AutoIncrement]
public int Id { get; set; }

[ForeignKey(typeof(BaseSeries))]
public int SeasonId { get; set; }

public int SeasonNumber { get; set; }
public int NumberOfEpisodes { get; set; }
public string Plot { get; set; }
public string Poster { get; set; }
public string AirDate { get; set; }

[OneToMany(CascadeOperations = CascadeOperation.All)]
public List<BaseEpisode> Episodes { get; set; }    
[ManyToOne]
public BaseSeries BaseSeries { get; set; }

}

public class BaseEpisode
{
[PrimaryKey, AutoIncrement]
public int Id { get; set; }

[ForeignKey(typeof(BaseSeason))]
public int EpisodeId { get; set; }

public string Title { get; set; }
public string Plot { get; set; }
public string Poster { get; set; } //still path
public string AirDate { get; set; }
public int EpisodeNumber { get; set; }
public int SeasonNumber { get; set; }
public string SeriesName { get; set; }    

[ManyToOne]
public BaseSeason BaseSeason { get; set; }
}

sqlite-net-extensions のネストされたリレーションシップに関する経験があり、これを機能させる方法や、私が間違っていたことを確認する方法を知っている人はいますか?

意図した関係

4

1 に答える 1