對象A
有一個一對多的關聯:許多對象B
。我是否可以使用分配的自然鍵標識符,同時仍允許NHibernate識別瞬態實例?
當我查看數據庫 - TableB
- 我希望看到唯一的可讀字符串A.Name
,而不是始終加入或選擇代理整數標識符以查看名稱。
我可以映射Name
作爲標識符爲A
,但這會導致大量的額外SELECT
查詢,因爲NHibernate的不能識別的A
一個實例是瞬時的還是持久的。
我想我可以使用組合鍵,將本機分配的替代鍵與自然鍵組合。這看起來不太理想,但我很想聽聽一些意見。
我真正在尋找的是使用單列自然鍵,同時允許NHibernate識別瞬態實例的策略。
- 是否有可能?
- 什麼是映射 - 流利還是hbm?
另一方面,如果這是一個可怕的想法,我應該依靠數據庫視圖與子選擇,請解釋。
謝謝。
可怕的想法 - 罰款。爲什麼? – Jay 2010-06-23 18:44:55
對不起,我已經擴展了它。 – 2010-06-23 18:57:58
感謝您的更新。使用'UnsavedValue()'的問題是,我永遠不能堅持它 - 只要我分配一個名稱,NHibernate會將它視爲已保存,不是? – Jay 2010-06-23 19:21:43