NHibernate 3.2中的一对一映射通过代码映射

我正在尝试NHibernate 3.2 built-in mapping by code apiNOT Fluent NHibernate )学习NHibernate 3.2 built-in mapping by code api 。 你能帮助我映射这些实体之间的一对一(或零)关系吗?

注意:我搜索了问题,我搜索SOF,所有示例都使用Fluent API或xml; 我正在尝试在NHibernate 3.2中使用内置的映射api

 public class Person { public virtual int Id { get; set; } public virtual string FirstName { get; set; } public virtual string LastName { get; set; } // can be null public virtual Address Address { get; set; } } public class Address { public virtual int Id { get; set; } public virtual string Line1 { get; set; } public virtual string Line2 { get; set; } public virtual string City { get; set; } // can not be null public virtual Person Person { get; set; } } 

提前致谢。

更新:

主要关键策略在于:

 Id( t => t.Id, t => { t.Generator(Generators.HighLow, g => g.Params(new { max_low = 100 })); t.Column(typeof(TEntity).Name + "Id"); }); 

根据您的实际需要 – 一对一地图或多对一地图可以回答您的问题。 如果您需要真正独特的双向约束,请查看此链接以获得一对一: http : //notherdev.blogspot.com/2012/01/mapping-by-code-onetoone.html

一对一通常是一个糟糕的策略,因为在几乎所有情况下将列全部放在一个表上是有意义的,如果您需要它们是域中的独立实体,则通过组件映射将它们分开。 在域和数据模型中分离它们的典型方法是使用具有唯一约束的多对一连接到父级,这是一种常见模式。

有关一般3.2映射的提示和提示,此资源对我有很多帮助: http : //notherdev.blogspot.com/2012/02/nhibernates-mapping-by-code-summary.html