Проблема картографирования NHibernate - PullRequest
0 голосов
/ 20 января 2010

У меня есть следующий набор таблиц в существующей базе данных.

Resource - ResourceID

LocalisedResource - LocalisedResourceID, ResourceID, язык, культура, LocalisedTerm

Офис - OfficeId, NameResourceId

Теперь я хочу запросить конкретный офис и вернуть название офиса для определенной комбинации языковой культуры, возвращаясь к языку по умолчанию "EN" и культуре "GB", если не найдена запись для языка и культуры указано.

Итак, как-то так ...

public class Office
{
    public virtual int OfficeId { get; set; }
    public string Name { get; set; }        
}

repository.GetOffice(5 /* id */,"zh" /* language */,"cht" /* culture */);

Мы тоже хотим сделать это для сохранения ...

repository.SaveOffice(office,"zh" /* language */,"cht" /* culture */);

В данный момент мы выполняем все наши отображения в собственном письменном наборе хранимых процедур, используя функцию для извлечения правильного имени. Это, очевидно, замедляет нас, так как мы должны написать много SP для всего нашего кода.

1 Ответ

1 голос
/ 20 января 2010

Эта статья о локализации NHibernate с использованием фильтров может помочь с получением вашего объекта, но я не знаю, поможет ли это с сохранением.

Отредактировано для добавления: Вы можете отобразить локализованные имена как коллекцию в Office и использовать метод OFfice для поиска локализованного имени из коллекции. Производительность может быть приемлемой в зависимости от того, как ваше приложение использует объект Office.

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