1

我正在DNN 7+中使用DAL2。如何在DNN 7+中使用DAL2中的複合鍵?

我有一個數據庫表與從2-varchar(50)字段創建的主鍵。

在對象的屬性中聲明多字段主鍵的正確方法是什麼?
我通常做的:

[PrimaryKey("myField")] 

我應該添加第二個的PrimaryKey屬性?

問題的第二部分是如何從數據庫中獲取數據。
我想使用GetById()函數,因爲它包含緩存但它似乎不支持多個字段。我堅持使用Find()方法並手動處理緩存,或者選擇使用多字段主鍵的對象的最佳方式是什麼? 「看起來和天幕一樣多!」

回答

1

DAL2不支持組合鍵。

我發現解決此限制的最佳方法是修改數據庫表。我使用自動增量int'id'字段作爲主鍵,並在希望用作組合鍵的字段上設置唯一約束。

這將需要使用防止緩存的.Find()方法。如果需要緩存,則必須手動完成。手動設置緩存時,也應該手動清除緩存。如果您使用存儲庫技術,請確保在更新或刪除對象時清除緩存。 「看起來和天幕一樣多!」