对象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