Предотвратите Быстрый n+1 выбора NHibernate

В прошлом я реализовал анимацию подзаговоров по следующим направлениям:

import numpy as np
from matplotlib import pyplot as plt
from matplotlib import animation

# Set up formatting for the movie files
Writer = animation.writers['ffmpeg']
writer = Writer(fps=15, metadata=dict(artist='Me'), bitrate=1800)

# initialization function: plot the background of each frame
def init():
    fig = plt.figure()
    ax2 = fig.add_subplot(2, 1, 1)
    ax3 = fig.add_subplot(2, 1, 2)
    title = plt.title('')
    title.set_text('')
    return fig,ax2,ax3,title

# animation function.  This is called sequentially
def animate(i):

    a = ax2.pcolor(x,y,data)

    b = ax3.pcolor(x2,y2,data2)

    main_title.set_text('Main Title')
    title2.set_text('Sub title 1')
    title3.set_text('Sub title 2')

    return main_title, title2, title3, ax2, ax3

# call the animator.
fig = plt.figure()
ax2 = fig.add_subplot(2, 1, 1)
ax3 = fig.add_subplot(2, 1, 2)
title2 = ax2.set_title('')
title3 = ax3.set_title('')
main_title = fig.suptitle('')


anim = animation.FuncAnimation(fig, animate, init_func=init,
                               frames=101, interval=250, blit=False)


anim.save('file.mp4', writer=writer)
plt.close()

Не уверен, что это полезно, в основном это копирование и вставка из старого сценария, который я не использовал некоторое время ...

5
задан Ivaylo Slavov 9 March 2012 в 06:40
поделиться

2 ответа

Это звучит мне, что Вы хотите преследовать подход использования Вашей модели предметной области вместо того, чтобы создать определенный запрос nhibernate для обработки этого сценария. Учитывая это, я предложил бы, чтобы Вы смотрели на атрибут пакетного размера, который можно обратиться наборам. Быстрый быстрый интерфейс NHibernate еще не поддерживает этот атрибут, но поскольку работа вокруг Вас может использовать:

HasMany(x => x.Children).AsSet().SetAttribute("batch-size", "20")

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

http://www.nhforge.org/wikis/howtonh/lazy-loading-eager-loading.aspx

http://nhibernate.info/doc/nhibernate-reference/performance.html

Документация производительности NHibernate объяснит, как пакетный размер работает.

Править: Я не знаю ни о каком способе разбить на страницы от Вашей модели предметной области. Я рекомендую записать запросы NH для сценариев, где подкачка страниц требуется.

9
ответ дан 14 December 2019 в 01:18
поделиться

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

Ну, если Вы только загружаете дочерние элементы затем, можно разбить на страницы их :). Но если Вы хотите что-то как: LoadParent И PageChildren, затем я не думаю, что можно сделать это.

0
ответ дан 14 December 2019 в 01:18
поделиться
Другие вопросы по тегам:

Похожие вопросы: