NHibernate的多对多效率低下?

Dor*_*oby 3 nhibernate fluent-nhibernate

我正在尝试使用NHibernate和Fluent NHibernate设置一个示例项目.我正在使用Fluent NHibernate网站上的示例映射.

我的问题是关于商店和产品之间的多对多映射.看来(在查看生成的SQL时),当将产品添加到商店时,NHibernate会删除属于该商店的关联表(StoreProduct)中的所有记录,然后再次插入所有记录,现在包括关联到我添加的新产品.

这是默认行为还是我遗漏了什么?每次我需要添加一个关联时,删除和重新插入所有关联似乎不是很有效.

Mic*_*uso 5

这是预期的行为.我相信这应该当您使用只发生映射策略,它看起来像他们正在使用的例子.一个包表示存在可以具有重复项的无序集合.因为袋子物品不是唯一的,所以NHibernate无法分辨您何时从袋子中轻松添加或移除物品.NHibernate最简单的方法是删除所有关联,然后重新添加.

我玩了多对多的映射已经有一段时间了(我通常只是映射为两个一对多的关系)但是我相信如果你使用一个不同的构造,例如,一个集合(不允许重复)你应该发现行为是不同的.当然,您应该使用构造对您的应用程序最具语义意义的东西.