FluentNHibernate:AsSet()的作用是什么?

cbp*_*cbp 7 fluent-nhibernate

在Fluent Nhibernate中,在HasMany或HasManyToMany关系上指定AsSet()的效果是什么?

假设映射属性的类型是Iesi Set,那么之间有什么区别:

HasMany(x => x.MySetProperty)
   .AsSet();
Run Code Online (Sandbox Code Playgroud)

HasMany(x => x.MySetProperty);
Run Code Online (Sandbox Code Playgroud)

Jam*_*ory 12

假设你的类型是Iesi Set,那么没有区别; HasMany对它自己的调用很聪明,可以弄清楚你想要一个Set.这AsSet是一种在FNH可能无法按类型确定的情况下将HasMany显式更改为Set的方法,例如,如果您将集合公开为IEnumerable默认为Bag并且调用AsSet将覆盖它.