4
Shop
Product
Category
以下關係:
(Shop) 1 <---> n (Categories)
(Shop) 1 <---> n (Products)
(Categories) n <---> n (Products)
THE級聯刪除:
Shop ---> Categories ... I defined this using fluent API
Shop ---> Products ... I defined this using fluent API
Categories <---> Products ... EF 4.1 automatically defines cascade for "Category_Product" join table
問題: 上面的結果是「多個」級聯刪除路徑異常。
潛在FIXES:
- 卸下ManyToManyConvention,但這意味着我必須手動執行刪除在系統中,這是不切實際的每個連接表。
- 我可以從Shop-> Category或Shop-> Products中刪除級聯刪除。但是,我可能會有很多孤兒記錄。
你是怎麼處理這個問題的人?
謝謝
是的我的意思是「多條路徑」,我的不好。我知道SQL Server的限制,但它沒有任何意義,因爲當你刪除Categories時,它會刪除JOIN TABLE中的Category_Product記錄,而不是實際的產品記錄!但SqlServer仍然將它包含在級聯路徑中......怪異的吧?所以觸發器或sprocs是唯一的方法? – Matt0 2011-05-19 22:35:37
我想要一個觸發器來檢查商店何時被刪除,所有的依賴記錄也被刪除了,但是那麼ORM有什麼意義呢? :-) – Matt0 2011-05-19 22:39:37
但是,如果您刪除商店,它將刪除產品和類別,一旦它們中的任何一個被刪除,它也將刪除來自連接表的記錄=刪除可以來自任何一方。 – 2011-05-19 22:41:09