でカスタムオブジェクトを使用することができ、以下のドメインオブジェクトを参照してください:予想通り、この作品は、どのように私はNHibernateは
public class PersonMap : ClassMapping<Person>
{
public PersonMap()
{
Id<Guid>(x => x.Id);
Property<string>(x => x.FirstName);
Property<string>(x => x.Surname);
Property<DateTime>(x => x.DateOfBirth);
}
}
:下回る
public Class Person
{
public virtual Guid Id { get; protected set; }
public virtual string FirstName { get; protected set; }
public virtual string Surname { get; protected set; }
public virtual System.DateTime DateOfBirth { get; protected set; }
//Domain methods are here.
}
とNHibernateのマッピングを。ドメインモデルを次のように変更したいとします。
public Class Person
{
public virtual Guid Id { get; protected set; }
public virtual FirstName FirstName { get; protected set; }
public virtual Surname Surname { get; protected set; }
public virtual DateOfBirth DateOfBirth { get; protected set; }
}
プリミティブ型がオブジェクトに置き換えられていることに注意してください。私がこれをやっている理由は、ここに記載されているように原始的な強迫観念を取り除くことです:http://enterprisecraftsmanship.com/2015/03/07/functional-c-primitive-obsession/
私はここの文書(144ページ):http://stc.sbu.ac.ir/AdminTools/Docs/Files/nhibernate_reference.pdfを読んでいます。カスタムタイプを導入するように指示しています。私もこの質問を読んだ:nHibernate mapping to custom types。私はまだNHibernateのコードマッピングとこれを行うために苦労しているので、質問の理由。
あなたはコンポーネント(https://github.com/jagregory/fluent-nhibernate/wiki/Fluent-mapping#components)を介してそれらをマッピングを見たことがありますか?データが同じテーブルにある場合、これは簡単な出発点になるかもしれません。 –
@David Osbourne、+1 - このリンクは、行為に非常に役立ちました。 Fluent NHibernateのコードをコードマッピングに適用したところ、期待通りに機能するようになりました(私の答えを見てください)。私はいくつかのクレジットを与えることができるように答えを投稿できますか? – w0051977