簡體   English   中英

實體框架/數據庫 - 存檔外鍵記錄

[英]Entity Framework / Database - Archiving Foreign Key Records

我已經為具有以下關系的客戶開發了一個應用程序:

SalesOrder與客戶具有外鍵關系(一對一)。

客戶現在希望能夠刪除客戶,以便它們不會用於任何未來(新)SalesOrders,但顯然我想保留報告的歷史記錄等。同樣,記錄可能需要更新 - 在極少數情況下將來可用,因此在“編輯”模式下,客戶需要在那里(但所有其他已刪除的客戶都不會)

我正在尋找模型的輸入來模擬這個或更好的建議。 我的想法是在客戶上有一個“存檔”位,但我的問題是,如果有人加載舊的SalesOrder,我還需要加載客戶填充的DropDownList的存檔記錄。

由於我正在使用Entity Framework和EntityDataSource,我的猜測是我也可能在DropDownList的SelectedValue綁定上獲得運行時異常,但我還沒有驗證這一點。

有關從哪里開始的任何想法或建議?

謝謝。

我相信我有一個解決方案。 我一整天都在絞盡腦汁,但我覺得這很容易。 在快速原型中,它看起來像我需要的那樣:

我在Customers表中添加了一個“Archived”位(實際上是它們繼承的BusinessEntity表)。 然后,對於“編輯銷售訂單”頁面,在查詢客戶時,我有一個where子句,其中包含按ID分類的客戶。

例如(偽代碼): SELECT CustomerID,Name FROM Customers WHERE Archived = 0 OR CustomerID = 52

這將所有活躍的客戶和一個客戶拉到我需要的記錄中。 這允許客戶仍然鏈接到記錄以進行編輯,並且不會使用DropDownList綁定生成運行時異常。

對於報告,我假設我不會根據Archived位進行過濾,因為無論如何它都是只讀的。

暫無
暫無

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

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