たとえば、私は持っていてOrder
、この注文には。を持つReserve
フィールドがありますICollection<ReserveItem>
。私が今持っているのは:
注文クラス
public class Order
{
...
public Reserve Reserve {get; private set;}
public void ClearReserve()
{
// Reserve.Items = null; or Resrver.Items.Clear()
Reserve = null;
}
}
予約クラス
public class Reserve
{
public ICollection<ReserveItems> Items {get; set;}
public DateTime ExpireDate {get; set;}
}
およびOrderRepositoryクラス
public OrderRepository
{
...
public void ClearOrderReserve(Order order)
{
order.ClearReserve();
repostiry.InsertOrUpdate(order);
}
...
}
私のデータベースコンテキストクラスには、次のものがあります。
protected override void OnModelCreating(DbModelBuilder modelBuilder)
{
...
modelBuilder.Entity<Reserve>()
.HasMany(pr => pr.Items)
.WithRequired()
.WillCascadeOnDelete();
...
}
Order.Reserve
メソッドのフィールドを正しく削除(値をに設定null
)しOrderRepository.ClearOrderReserve(Order order)
、削除時にカスケードを開始しICollection<ReserveItem>
てデータベースから冗長なレコードを削除するにはどうすればよいですか?