Есть ли решение обобщить этот метод? - PullRequest
0 голосов
/ 20 июня 2011

Мне нужен метод в моем базовом классе доступа к данным, такой как:

    public virtual void InitializaEntity(T entity, object relatedEntity)
    {
        using (session)
        {
            T mergedEntity = (T)session.Merge(entity);
            NHibernateUtil.Initialize(relatedEntity);
        }
    }

Я хочу, чтобы лениво инициализировать связанный объект с основным объектом.Я могу использовать метод, описанный ниже, для каждого отношения, но мне нравится обобщать этот метод.

    public Keyword GetKeywordCategoryByKewordId(long id)
    {
        Keyword k = session.Get<Keyword>(id);
        NHibernateUtil.Initialize(k.Categories);

        session.Close();

        return k;
    }

Есть ли какое-нибудь решение?

1 Ответ

0 голосов
/ 20 июня 2011

Мне не совсем понятно, что вы хотите обобщить, но:

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

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