0
我有一個簡單的實體數據模型,其中有兩個實體和它們之間的1- *關係。爲了簡化目的,我們假設Person和Book。 (即人們有0本或更多的書籍和書籍必須有一個所有者)設計更新後的數據遷移
系統工作正常,它有數據。
現在我需要創建一個從人(即學生,教師)繼承其他實體
當我創建它們並相應地更新我的軟件,一切工作正常使用這種新模式。
現在我需要遷移舊數據(與圖書鏈接的人員中的數據) 在我的數據中,我知道哪個人是學生,哪些人是老師,並且我還有關於學生和教師的其他信息放置在新模型中。
問題是如何遷移數據。在刪除Person實例之前,我無法添加學生和教師,因爲這會在個人中創建重複的ID。我無法刪除該人員,因爲它創建了一個錯誤。 (「DELETE語句與參考約束衝突」)
如何實現此數據遷移。
感謝
我使用每種類型的表。我試圖在.NET中做到這一點。這就是爲什麼我試圖刪除實體,然後將其創建爲子類型。有關哪個人是學生,哪個是教師的信息在DB中不存在。這就是爲什麼我試着用.NET來做這件事。 – cellik
因爲你真的不能將'Person'改爲子類型,所以你將無法在.NET中使用新的EF模型。它要求刪除該人及其所有關係,並創建一個具有相同關係的新實體。這是很多不需要的數據庫操作。如果是一次遷移,只需創建一些幫助工具(控制檯應用程序),它將獲取數據並執行SQL以將數據庫置於新的預期狀態。 –
這是一次性的事情。我最終使用c#中的ExecuteNonQuery命令來完成它。基本上我已將行添加到學生和老師表中,並提供必要的數據。 – cellik