私は通常このようなデータを扱いませんが、idで試してみようと思いました。結局のところ、私は失敗しました:/そしてどのように進めるかがわかりません。
私はデータベースオブジェクトトラックを持っています:
public virtual string Type { get; set; }
public virtual IList<DateTypeTrack> TrackDates { get; set; }
マッピングファイルの場合:
Table("Tracks");
Map(x => x.Type).Not.Nullable();
HasMany(x => x.TrackDates).KeyColumn("TrackID").Cascade.All();
DateTypeTrackオブジェクトは次のようになります。
public virtual DateType DateType { get; set; }
public virtual Track Track { get; set; }
public virtual int Days { get; set; }
このようなマッピングファイルを使用すると、次のようになります。
Table("DateTypeTracks");
References(x => x.DateType, "DateTypeID").Not.Nullable();
References(x => x.Track, "TrackID").Not.Nullable();
Map(x => x.Days).Not.Nullable();
必要に応じて、DateTypeコードも投稿しますが、必要だとは思いません。
そして、非常に単純なdeleteメソッドをサービスレイヤーに書き込もうとしています。
public void PushDelete(int id)
{
Track track = _tracks.Get(id);
try
{
_tracks.BeginTransaction();
_tracks.Delete(track);
_tracks.CommitTransaction();
}
catch (Exception)
{
_tracks.RollbackTransaction();
throw;
}
}
エラーが発生し続けます:
could not delete collection: [TSE.Domain.DatabaseObjects.Track.TrackDates#12][SQL: UPDATE DateTypeTracks SET TrackID = null WHERE TrackID = @p0]
最後に更新を試みた理由はわかりませんが、それが問題の原因だと思います。どのような手段がありますか?
ありがとう。