У меня есть следующие классы Person
и Gender
(не совсем, но пример упрощен, чтобы донести свою точку зрения), используя NHibernate (Fluent NHibernate), я хочу отобразить столбец базы данных "GenderId
"[INT] значение для защищенного поля int _genderId
в моем классе Person
. Как мне это сделать?
К вашему сведению, сопоставления и доменные объекты находятся в отдельных сборках.
public class Person : Entity
{
protected int _genderId;
public virtual int Id { get; private set; }
public virtual string Name { get; private set; }
public virtual Gender Gender
{
get { return Gender.FromId(_genderId); }
}
}
public class Gender : EnumerationBase<Gender>
{
public static Gender Male
= new Gender(1, "Male");
public static Gender Female
= new Gender(2, "Female");
private static readonly Gender[] _genders
= new[] { Male, Female };
private Gender(int id, string name)
{
Id = id;
Name = name;
}
public int Id { get; private set; }
public string Name { get; private set; }
public static Gender FromId(int id)
{
return _genders.Where(x => x.Id == id).SingleOrDefault();
}
}