NHibernate объект с полями в качестве поиска - PullRequest
1 голос
/ 09 ноября 2010

Я новичок в NHibernate. Предположим, у вас есть класс Customer, подобный этому

public class Customer {
    public virtual int CustomerID { get; set; }
    public virtual string Name { get; set; }
    public virtual CustomerType CustomerType { get; set; }
}

где CustomerType - класс поиска, который просто обрабатывает значения как

  • Внутренний клиент
  • Иностранный клиент
  • ...

Так что значения CustomerType не будут меняться очень часто, а в некоторых случаях они вообще не изменяются (например, пол человека)

Каков наилучший способ справиться с этим сценарием?

Если я сопоставлю класс поиска, как я делал в этом примере, при попытке вставить нового клиента, я должен сначала найти правильный CustomerType в базе данных? Или для этих случаев лучше использовать классы Enum?

Ответы [ 2 ]

1 голос
/ 09 ноября 2010

Лучшей альтернативой перечислениям является WellKnownInstanceType из uNhAddIns .

Это поможет вам реализовать шаблон стратегии практически без добавления шума.

1 голос
/ 09 ноября 2010

Вы можете сделать и то и другое - на самом деле это не проблема NHibernate.

Перечисления, очевидно, предлагают большую отдачу с точки зрения простоты, но начнут приносить пользу, когда окружающая их бизнес-логика станет более сложной.

С сущностью бизнес-правила могут быть включены в качестве свойств или методов сущности.С помощью перечисления бизнес-логика должна храниться в другом месте, что может привести к более сложному коду.

Возможно преобразовать перечисления в сущности позднее, но не прямо.

...