NHibernate中的多对一关系

时间:2009-11-20 22:44:44

标签: asp.net nhibernate

我仍在尝试学习NHibernate的最佳实践,所以请对我很轻松......: - )

我有一个Product类,它具有设置为Category类的多对一关系。在我的Add A Product页面上,我正在使用Categories加载DropDownList。现在,当用户输入产品信息并单击提交时,我必须从数据库中下拉ID(DropDownList SelectedValue)以填充我的Product对象的Category属性,以便我可以保存它。

看起来像ID查找类别是一种浪费。有没有办法可以简单地使用从DropDownList中检索到的ID值?

感谢您的任何建议!

1 个答案:

答案 0 :(得分:2)

使用ISession.Load()创建代理对象。例如:

myProduct.Category = session.Load<Category>(userSuppliedCategoryId);

请注意,除非您尝试访问主键以外的属性,否则Load()方法实际上不会访问数据库,因此不会有额外的数据库命中。

Ayende has a good post about this