我正在设计一个OO对象模型,计划使用NHibernate作为数据访问层。
我想知道在处理彼此具有多对多关系的两个实体时,最好的OO设计是什么(特别是为了方便与NHibernate集成)。
对象: 用户 - 单个用户可以与多个主题相关联 主题 - 单个主题可以与多个用户相关联
在SQL中,这种关系很直观,可以使用多对多表;
tblUser
userID
tblSubject
subjectID
tblUserSubject
userSubjectID
userID
subjectID
那么,如何创建“纯”对象呢?每个对象是否应包含其他对象的集合?例如:
class User
{
public int userID {get; set;}
public List<Subject> subjects {get; set;}
}
class Subject
{
public int subjectID {get; set;}
public List<User> users {get; set;}
}
有没有更好的方法来建模以便NHibernate可以轻松地持久化关系?