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