【发布时间】:2009-11-05 09:23:37
【问题描述】:
我一直对 Web 应用程序采用以数据为中心的方法,因此在使用 ORM 采用纯 OO 方法时所涉及的范式变化对我来说仍然不是完全自然的,而且有时表面上简单的事情并不明显。
有人可以指出如何在 ORM(特别是 NHibernate)中正确建模这种情况的正确方向。
情况:有很多用户,很多项目,用户可以给项目打分。
在以数据为中心/关系的方法中,它看起来像这样(并且非常简单!):
- Items Table
ItemID
ItemName
- UserRatings Table
UserID
ItemID
Rating
- Users Table
UserID
UserName
如果您想了解您的登录用户对特定项目的评分,您只需执行联合查询即可。
但是,在使用 ORM 时,如何以 OO 方式对其进行建模对我来说并不明显。我相信我需要三个域类:Item、UserRating 和 User。大概我还需要 Items 类中的 UserRatings 集合,以及 User 类中的 UserRatings 集合。但是如何从我加载的特定项目导航到正确的 UserRating(当然,这个 UserRating 必须是与我感兴趣的用户相关的项目)。
谁能帮我澄清一下?
谢谢
【问题讨论】:
标签: nhibernate orm