今天在作業中碰到了一個很奇怪的問題,
當在更新一個表A中的記錄的時候,會發現,在跟該A表多對多關系的外鍵表B中,會被增加幾條記錄,
而原本我希望的是,只在這A表和B表的多對多關系表AB中,增加對應的記錄,而不是在物體表B中增加記錄(物體表中原本就有該記錄,又增加了重復的記錄),
幾經測驗,終于解決了這個問題,
我在操作更新A表的時候,直接用的EF的導航屬性,直接對這個導航屬性進行的更新操作,將新建的B模型,賦值給了這個A表物體的導航屬性,
這就導致了跟新A表后,在B表中增加了重復記錄,
而應該在給A表物體的導航屬性賦值時,先Clear表A的物體的導航屬性,然后根據條件,從B表里將想要賦值給A表物體導航屬性的記錄查詢出來,然后賦值給A表的物體的導航屬性,
這樣,在提交更新的時候,修改后的導航屬性才能通過多對多的這個關系關聯到AB表(A表和B表的中間關系表),這樣更新后,只會在中間關系表AB中增加記錄,而不會在B表中新增重復記錄了,
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/285395.html
標籤:ASP.NET MVC
