これが以前に回答されている場合はお詫び申し上げます。私はグーグルを試しましたが、答えが見つかりませんでした。
現時点では、私はクラスを持っています
public class User
{
public virtual string Username { get; set; }
public virtual string Name { get; set; }
public virtual ISet<User> Teamleaders { get; set;}
public virtual ISet<User> Staff { get; set;}
}
teamLeaders は、この 1 人のユーザーが持つすべてのチームリーダーを保存します。staff は、チームリーダーが持つすべてのスタッフを格納します。
これは多対多の関係です。
現在、私のXMLファイルは以下のとおりです
<?xml version="1.0" encoding="utf-8" ?>
<hibernate-mapping xmlns="urn:nhibernate-mapping-2.2"
assembly="SDReward"
namespace="SDReward.Domain">
<class name="User">
<id name="Username" />
<property name="Name" />
</class>
</hibernate-mapping>
次のデータで動作するようになりました。teamleaderstaff テーブルからデータを取得します
<set name="Teamleaders" table="teamleaderstaff">
<key column="TeamleaderId" />
<many-to-many column="UserId" class="User" />
</set>
<set name="Staff" table="teamleaderstaff">
<key column="UserId" />
<many-to-many column="TeamleaderId" class="User" />
</set>
しかし、挿入を行うと、データベースに二重に挿入されます...たとえば、1人のチームリーダーをユーザーに追加し、そのユーザーをチームリーダーのスタッフとして追加すると、同じデータで2つの挿入が行われます。