Я думаю, вы можете создать Entity for Language. Позже в Entity for Customer есть ссылка на этот Entity.
public class Customer
{
public virtual int Id { get; set; }
public virtual string Name{ get; set; }
public virtual Language Language { get; set; }
}
Тогда в CutomerMap вы должны сделать:
public class CustomerMap : ClassMap<Customer>
{
public CustomerMap()
{
Id(x => x.Id);
Map(x => x.Name);
References(x => x.Language);
}
}
Позже, когда вы звоните своим клиентам, вы можете решить показать "instance.Language.Description"
Например, в MVC, в контроллере вы можете сделать:
public ActionResult Index()
{
using (ISession session = NHibernateHelper.OpenSession())
{
var customers = session.Query<Customer>().Fetch(x => x.Language).ToList();
return View(customers);
}
}
А на виде:
@foreach (var item in Model) {
<tr>
<td>
@Html.DisplayFor(modelItem => item.Name)
</td>
<td>
@Html.DisplayFor(modelItem => item.Language.Description)
</td>
<td>
@Html.ActionLink("Edit", "Edit", new { id=item.Id }) |
@Html.ActionLink("Details", "Details", new { id=item.Id }) |
@Html.ActionLink("Delete", "Delete", new { id=item.Id })
</td>
</tr>
}
Надеюсь, это поможет.