Я недавно погрузился в проект, который интенсивно использует nHibernate. Я получил достаточно много концепций для их реализации, но мне трудно определить, когда использовать объекты, связанные с таблицами, в классе, определяющем другую таблицу.
Это просто очень простой пример, который я составил ... Я мог бы создать класс Order (который содержит FK to StateID) со стандартными типами, но из того, что я видел, я также могу использовать существующие объекты в моем определения. Например, StateID может быть:
// StateID int, NOT NULL
private int _stateid;
public virtual int StateID
{
get { return this._stateid; }
set { this._stateid= value; }
}
или
// State Object
private State _state;
public virtual State State
{
get { return this._state; }
set { this._state= value; }
}
Используется ли объект, только если существует отношение, которое должно каскадно меняться? Когда я должен использовать стандартный тип против объекта на основе таблицы? Кажется, не имеет смысла использовать объект, если я использую только одно свойство объекта (например, PK). Если, конечно, мне нужно легко получить доступ к другому свойству. IE: я мог бы сделать Order.State.StateName, чтобы получить имя состояния, связанного с StateID в таблице заказов. Может быть, это когда он используется?
Я сказал это не так хорошо, как хотелось бы, но я думаю, что это дает общий вопрос.