我不想使用ISet,因为它不是本机集合.
我可以使用IList逃脱吗?我的关系都有主键,任何时候它们都没有我不使用该集合来修改数据库等(父集合将处理任何数据库更新/级联等).
你可以使用IList <bag>(<idbag>我相信).我总是使用IList和nHibernate,我也没有看到ISet在开源代码中经常使用nHibernate.
我很好奇你使用的是HBM文件还是流利的nHibernate,Fluent非常简单,只需要收集IList,它就可以完成剩下的工作.
另外,David,nHibernate可能不是"本机",但你也不需要在域模型中引用nHibernate(至少我希望你不要).持久性无知是nHibernate的特征之一.
我经常以类似的方式映射多对一关系:
家长:
public IList<Child> Children { get; private set; }
public AddChild(Child child) {
child.Parent = this;
Children.Add(child);
}
Run Code Online (Sandbox Code Playgroud)
儿童:
public Parent Parent { get; set; }
Run Code Online (Sandbox Code Playgroud)
您还可以使用IEnumerable创建子级并使用IList的支持字段,但是您需要告诉nHibernate如何访问支持字段.这使得只能通过AddChild()方法添加子项.
| 归档时间: |
|
| 查看次数: |
1654 次 |
| 最近记录: |