我的数据库中有许多表,称为
UserMatchCriteria
UserMatchLifestyle
UserHobby
现在前两个用户ID只有一个行条目,但第三个表可以包含0到100个条目,具体取决于用户选择的爱好。
我希望能够在C#代码中创建一个名为UserSearchDetails的对象,它包含一个UserMatchCriteria对象,一个UserMatchLifestyle对象和一个包含零个或多个UserHobby对象的IList集合。
我的问题是我不希望将User表绑定到必须在每次加载时链接到这些,因为这是一个很大的开销,我几乎不需要用于用户对象的所有用例。我希望将搜索详细信息单独加载到UserSearchDetails对象中,该对象没有与之关联的DB表。显然我可以使用NHibernate来做诸如
之类的事情<one-to-one name=UserMatchCriteria>
<one-to-one name=UserMatchLifestyle>
<bag name=Hobbies........... />
等,但没有基表来运行初始选择关闭,并向我提供UserId,我不确定在什么上下文中使用这些条目。
我是否需要创建另一个名为UserSearchDetails的表,只有一个用于UserId的条目,用作我的基表,然后通过UserId的PK连接到其他表?
还是有另一种方法来实现我在这里要做的事情吗?
答案 0 :(得分:1)
默认情况下,引用和包是延迟加载的。您可以在用户中映射组件
<component name="UserSearchDetails">
<many-to-one>
<many-to-one>
<bag>
<component>