簡體   English   中英

刪除父項時刪除子項

[英]Deleting Child Entries when deleting parent

我讀過各種文章,但似乎沒有一個與我的問題相符。 刪除父項時,我需要刪除鏈接到外鍵的子項。

目前,我有以下代碼:

public async Task UpdateLineItemByOrderLineId(int orderLineId, int newQuantity)
    {
        var clientBasket = await GetBasketAsync();
        var lineItem = clientBasket.OrderLines.FirstOrDefault(x => x.OrderLineId == orderLineId);
        if (newQuantity == 0)
        {
            _orderLinesRepository.Delete(lineItem);
            _orderLinesRepository.Save();
        }

這鏈接到以下存儲庫

public class OrderLinesRepository : GenericRepository<OrderLine>, IOrderLinesRepository
    {
        public OrderLinesRepository(IDbContextFactory dbContextFactory)
            : base(dbContextFactory)
        {
        }
    }

帖子似乎提到了實體框架等,正因為我正在從提供給我的解決方案中學習C#來使我完成,所以我看不到能反映EF的匹配代碼。

我不一定需要刪除子元素,而只需將ForeignKey設置為null。 需要注意的一件事是,我可以將多個子項鏈接到ForeignKey。

實現上述目標的正確方法是什么?

編輯:外鍵分配

    namespace TSW.Ecommerce.Data.Api
{
    public class OrderDelegate
    {
        [Key]
        public int OrderDelegateId { get; set; }
        [ForeignKey("OrderLineId")]
        public virtual OrderLine OrderLine { get; set; }
        public int? OrderLineId { get; set; }
        public string FirstName { get; set; }
        public string LastName { get; set; }
        public string Email { get; set; }
    }
}

正確的解決方案是:

foreach (var m in lineItem.DelegatesList.Where(f=>f.OrderLineId == orderLineId))
        {
          lineItem.DelegatesList.Remove(m);
        }

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM