これが私のクラスです:
public class User
{
public int Id { get; set; }
public string Name { get; set; }
public ISet<User> Friends { get; set; }
}
これが私のマッピングです:
<?xml version="1.0" encoding="utf-8" ?>
<hibernate-mapping xmlns="urn:nhibernate-mapping-2.2"
namespace="Test" assembly="test">
<class name="User" table="Users">
<id name="Id" column="id">
<generator class="native"/>
</id>
<property name="Name" column="name"/>
<set name="Friends" table="Friends">
<key column="user_id"/>
<many-to-many class="User" column="friend_id"/>
</set>
</class>
</hibernate-mapping>
ここに問題があります:
User user = session.Load<User>(1);
User friend = new User();
friend.Name = "new friend";
user.Friends.Add(friend);
最後の行[user.Friends.Add(friend)]で、新しい友達を追加する前に、Friendsコレクションが初期化されることに気付きました。
私の質問は:NHibernateでこの動作を回避する方法はありますか?パフォーマンス上の理由から、INSERTコマンドを1つだけ実行したいからです。