Nhibernate and sql scripts


Dont suppose anyone knows how to execute a sql script from nhibernate. Ive got some static data that I need in a database, that is contained, in a staticData.sql file. When I run my integration tests, I recreate the database with the schema export command, and I need to run this data in. I realise I can get it in using .net, but Id really like to only have one data access technique in my project…


Best Solution

Try using 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);

Here is the documentation: Chapter 16. Native SQL

Related Question