簡體   English   中英

在實體框架中刪除子級

[英]Removing children in Entity Framework

在我的數據庫模型中,我有4個實體:訂單,服務,客戶,員工。 他們的關系:

客戶0..1-*訂購

訂單1-*服務

員工1-*服務。

我嘗試刪除特定順序的所有服務,但收到InvalidOperationException: 操作失敗:由於一個或多個外鍵屬性不可為空,因此無法更改關系。 對關系進行更改時,相關的外鍵屬性將設置為空值。 如果外鍵不支持空值,則必須定義新的關系,必須為外鍵屬性分配另一個非空值,或者必須刪除不相關的對象。

這是我的代碼:

        public static void ClearSevicesInOrder(int orderId)
        {
            using (DbEntities context = new DbEntities())
            {
                var o = context.Orders.Find(orderId);
                o.Services.Clear();
                context.SaveChanges();
            }
        }

我做錯了什么?

我寫了一篇有關此問題的博客文章,並提出了可能的解決方案。 http://wimpool.nl/blog/DotNet/extending-entity-framework-4-with-parentvalidator

簡而言之:要使其正常工作,您必須刪除“服務”列表中的每個服務

暫無
暫無

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

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