我(希望)剛剛開始我的第一個NHibernate項目,並遇到了一個絆腳石。希望得到任何建議。在沒有主鍵的表上使用NHibernate
我正在開發一個項目,在這個項目中,我的新代碼將與遺留代碼並排運行,我根本無法更改數據模型。我遇到過一種主表中沒有主鍵的情況。它是這樣的:
假設有一個順序表和產品表,其中列出了產品中的每個順序的LINE_ITEM表(即ORDER_ID,PRODUCT_ID和數量的consits)。在這個數據模型中,相同訂單中的相同產品可能有兩個訂單項。現有代碼中會發生什麼情況:只要用戶更新訂單項,該訂單的所有訂單項都會被刪除並重新插入。由於即使是line_item表中所有字段的複合鍵也不一定是唯一的,因此這是在此數據模型中更新行項目的唯一可能方式。
我準備保證我永遠不會嘗試更新或刪除個人訂單項。我能否像現有代碼一樣使NHibernate代碼工作?如果沒有,這是否意味着我(一)我根本不能使用NHibernate; (b)我不能使用NHibernate來映射line_item表;或(c)我仍然可以映射此表,但您的任何意見
就我個人而言,我認爲你會努力與NH合作。 – UpTheCreek 2010-01-07 10:21:15
添加自動遞增的ID列是否會打破傳統應用程序? (如果沒有PK列並且執行'DELETE' /'INSERT'而不是'UPDATE',那麼我認爲它有可能做'SELECT *'的可能性大於零。 ) – 2010-01-07 15:11:01
從我可以告訴,現有的應用程序確實做'選擇*',但它似乎通過名稱而不是索引訪問字段。不過,我真的寧願沒有冒險搞數據模型,以防萬一 – 2010-01-08 11:16:13