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