1
我通常不處理這樣的數據,但我想id試試看。事實證明,我失敗了:/並不確定如何繼續。流利Nhibernate:不能刪除一個項目作爲HasMany屬性
我有一個數據庫對象跟蹤:
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代碼,但我不認爲它是必需的。
,我試圖寫在我的服務層的刪除方法很簡單:
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]
我不知道爲什麼它試圖做最後更新,但我想這是什麼原因造成的問題。我有什麼樣的追索權?
謝謝。
所以,我應該刪除的項目在刪除主對象之前? –
不,級聯都會將刪除命令級聯到項目。不需要手動去做 – Firo
很酷。完美工作。 –