私は現在、User
次のようなエンティティ を持つ ASP.NET MVC アプリケーションに取り組んでいます。
public class User
{
public virtual int Id { get; protected set; }
public virtual string Name { get; protected set; }
public virtual string Role { get; protected set; }
public virtual Location Location { get; protected set; }
}
場所は同じくらい簡単です:
public class Location
{
public virtual string Id { get; protected set; }
public virtual string Building { get; protected set; }
public virtual string City { get; protected set; }
public virtual string Region { get; protected set; }
}
User
データベースではなく Active Directory からデータを入力したいので、複雑になります。さらに、データベースに永続化されたいくつかのクラスは、ユーザーをプロパティとして参照します。取得ADUserRepository
用がありますが、残りが NHibernate によって管理されている場合、これらのユーザーをオブジェクト グラフに統合する方法がわかりません。
NHibernate がUser
、Users テーブルへの外部キーではなく、ID だけを保持する方法はありますか? これを実現するためのコンポーネントとしてマップできますか? IUserType
また、翻訳を行うための実装も検討しました。そうすれば、単純なフィールドにマップさADUserRepository
れ、チェーンに入れられて保存された Id を解決できます。それとも、実際には実現不可能なものをハッキングしようとしていますか? NHibernate を使用するのはこれが初めてなので、洞察や解決策を教えていただければ幸いです。ありがとう。
アップデート
これに関する私の最善の解決策は、 User を IUserType にマップし、返される前にオブジェクトにデータを入力するためのサービスを (できれば StructureMap を使用して) 注入することです。その観点から、カスタム ByteCodeProvider の必要性を主に示唆するトピックを扱ういくつかの質問があります。IUserType がパラメーター化されたコンストラクターを取得するために、またはここでコメントを行うために、これを行う必要がありますか? NHibernate.ByteCode.LinFu.dll