これがあなたの求めているものかどうかは完全にはわかりませんが、各クラスを ClientId にマップする必要がある場合の例を次に示します。
基本的に、各クラスには UserAccount プロパティ、または ClientId プロパティを持つユーザーのアカウント情報を格納するクラスがあります。次に、Fluent NHibernate マッピングで、References() メソッドを使用してクラスを一緒にマップできます。以下の例を参照してください。
public class UserAccount
{
public virtual int Id { get; set; }
public virtual string Name { get; set; }
public virtual IList<Bill> Bills { get; set; }
}
public class Bill
{
public virtual int BillId { get; set; }
public virtual UserAccount User { get; set; }
}
public class UserAccount : ClassMap<UserAccount>
{
public UserAccount()
{
Id( x => x.Id ).Column( "ClientId" );
Map( x => x.Name );
HasMany( x => x.Bills );
}
}
public class BillMap : ClassMap<Bill>
{
public BillMap()
{
Id( x => x.Id ).Column( "BillId" );
References( x => x.User ).Column( "ClientId" );
}
}
そのため、Bill テーブルには ClientId 列があり、これはデータベース用語では実際には UserAccount テーブルの主キー列を参照する外部キーであり、ClientId とも呼ばれます。
本当に大量のテーブルがあり、そのすべてに ClientId 列が含まれている場合は、エンティティが継承する基本クラスにそれを抽象化し、既に UserAccount プロパティを持っているオプションもあります。Fluent NHibernate マッピング ファイルに対しても、同じ基本クラスのアプローチを行うことができます。