С NHibernate я больше не предоставляю внешние ключи для своих доменных объектов, поэтому у Product больше нет свойства:
public int CategoryId {get;set;}
но вместо этого имеет:
public Category Category {get;set;}
К сожалению, это не так хорошо работает с автоматическим связыванием модели в ASP.NET MVC - если я хочу просто привязать коллекцию форм непосредственно к моему объекту домена.
Например, я не мог просто иметь список выбора значений Category Id в моем представлении, принимать объект product в моем действии контроллера и ожидать, что MVC преобразует его в объект категории.
Мое решение до сих пор заключалось в создании моделей представлений, которые do имеют свойства для значений внешнего ключа - однако это обычно приводит к значительному дублированию в коде и дополнительной логике отображения в моем контроллере.
Есть ли лучший способ?