Nhibernate и sql сценарии

Обновление : спасибо за ответы. Удаленное предположение о копии на записи.

Еще одно различие между {} и dict - то, что dict всегда выделяет новый словарь (даже если содержание статично), тогда как {} не делает всегда , делают так (см. ответ mgood для когда и почему):

def dict1():
    return {'a':'b'}

def dict2():
    return dict(a='b')

print id(dict1()), id(dict1())
print id(dict2()), id(dict2())

производит:

$ ./mumble.py
11642752 11642752
11867168 11867456

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

5
задан user344836 14 September 2009 в 08:06
поделиться

2 ответа

Попробуйте использовать NHibernate.ISession.CreateSQLQuery (string queryString)

    private NHibernate.ISession session; // Initialized somewhere

    public void ExecuteSQLFile(string sqlFilePath)
    {
        string sqlScript;

        using (FileStream strm = File.OpenRead(sqlFilePath))
        {
            var reader = new StreamReader(strm);
            sqlScript = reader.ReadToEnd();
        }

        var regex = new Regex("^GO", RegexOptions.IgnoreCase | RegexOptions.Multiline);
        string[] lines = regex.Split(sqlScript);

        foreach (string line in lines)
        {
            IQuery query = session.CreateSQLQuery(line);
            query.ExecuteUpdate();
        }
    }

Вот документация: Глава 16. Собственный SQL

13
ответ дан 18 December 2019 в 09:51
поделиться

Нет ничего плохого в использовании простого ADO.NET для вставки данных в базу данных при тестировании интеграции. Для пакетных вставок это даже лучше, чем NHibernate. То, как вы переводите свою базу данных в известное состояние для тестирования, не имеет большого значения, важно проверить, как вы получаете доступ к своим данным в приложении.

4
ответ дан 18 December 2019 в 09:51
поделиться
Другие вопросы по тегам:

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