NHibernate: вставка нескольких элементов одновременно - PullRequest
4 голосов
/ 14 мая 2010

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

Например, рассмотрим этот тестовый код

    private static void SaveTestBillNamesInSession(ISession session, params string[] names)
    {
        var bills = from name in names
                    select new Bill
                        {
                            Name = name,
                            DateRegistered = DateTime.Now,
                        };
        foreach (var bill in bills)
            session.SaveOrUpdate(bill);
    }

Этот цикл генерирует множество операторов INSERT, которые могут быть неоптимальными в SQL Server 2008, что позволяет включать несколько строк данных в один оператор INSERT.

Можно ли переписать этот код, чтобы использовать эту функцию - вставить все данные в одну операцию?

Обновление Хорошо, теперь это действительно начало отправлять все в одной партии. Большое спасибо всем!

1 Ответ

9 голосов
/ 14 мая 2010

Есть что-то близкое к тому, что вы хотите.

Если установить для свойства конфигурации adonet.batch_size значение, отличное от 0 (по умолчанию), NHibernate отправит столько операторов одновременно на SQL Server.

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