我有3个DB表:Person,Address和PersonAddress。 Person Address是一个简单的连接表(仅存储Person和Address的ID)。
在我的域模型中,我有Person和Address。 Person被配置为与Address(通过PersonAddress)具有多对多关系。在代码中,这是使用List<Address>
实现的。
我被告知如果我......我会从nHibernate获得更好的表现。
Dictionary<Address, PersonAddress>
这是真的吗?
答案 0 :(得分:2)
我不会因为这个而在域中创建一个不必要的类。使用字典以获得更好的性能对我来说也很奇怪。
您可以使用idbag,更新速度更快。 (这在域中映射为List,但在数据库中有一个id。)
关于性能,总会考虑不同的事情。参考文档about collection performance中有一个非常有趣的章节。
答案 1 :(得分:1)
我也不会为NHibernate中的性能问题引入复杂的映射,直到建立这样做的需要为止。
除了标准的多对多映射外,您还可以使用带有PersonAddress对象的一对多策略(PersonAddress具有Persons集合和Addresses集合)。当您想要维护有关人员 - 地址关系的其他信息时,将使用此策略。