Использование NHibernate с таблицами поиска - PullRequest
4 голосов
/ 05 марта 2010

Если у вас есть набор таблиц в базе данных, которые строго состоят из описания строки и идентификатора, как лучше всего загрузить их через NHibernate?

Итак, предположим, у меня есть сэндвич-класс, а у сэндвича есть мясо, сыр и овощ, где эти три вещи являются справочными таблицами в БД. Кажется, что она наиболее соответствует философии NHibernate, чтобы иметь

public class Meat { string name; int id; }
public class Cheese { string name; int id; }
public class Vegetable { string name; int id; }
public class Sandwich { Meat meat; Cheese cheese; Vegetable vegetable; }

Но при наличии в базе данных нескольких десятков таких таблиц классы быстро распространяются. Предположим, я настроил это так:

public class NameAndID { string name; int id; }
public class Sandwich { NameAndID meat; NameAndID cheese; NameAndID vegetable; }

Это возможно? Как это будет реализовано в Fluent NHibernate?

1 Ответ

1 голос
/ 05 марта 2010

Вам понадобится еще один столбец, чтобы определить тип. Вы можете использовать перечисление для этого. Тогда все ваши поиски должны включать это ограничение ....

CreateCriteria<NameAndID>.Add(Restrictions.Eq("ntype", E.Meat)

Однако я бы предпочел отдельные таблицы, чтобы у вас могли быть лучшие внешние ключи. Иначе ничто в ограничениях базы данных не помешает вам приготовить бутерброд, состоящий из 3 кусочков сыра.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...