Using NH to execute SQL queries

--HG--
branch : 1.x
This commit is contained in:
Sebastien Ros
2013-03-05 15:35:03 -08:00
parent 14a04c64f1
commit 821890f297
2 changed files with 10 additions and 16 deletions

View File

@@ -141,18 +141,15 @@ namespace Orchard.Tests.DataMigration {
); );
// creating a new row should assign a default value to Firstname and Age // creating a new row should assign a default value to Firstname and Age
_schemaBuilder _schemaBuilder.ExecuteSql("insert into TEST_User VALUES (DEFAULT, DEFAULT)");
.ExecuteSql("insert into TEST_User VALUES (DEFAULT, DEFAULT)");
// ensure we have one record with the default value // ensure we have one record with the default value
var command = _session.Connection.CreateCommand(); var query = _session.CreateSQLQuery("SELECT count(*) FROM TEST_User WHERE Lastname = 'Doe'");
command.CommandText = "SELECT count(*) FROM TEST_User WHERE Lastname = 'Doe'"; Assert.That(query.UniqueResult<int>(), Is.EqualTo(1));
Assert.That(command.ExecuteScalar(), Is.EqualTo(1));
// ensure this is not a false positive // ensure this is not a false positive
command = _session.Connection.CreateCommand(); query = _session.CreateSQLQuery("SELECT count(*) FROM TEST_User WHERE Lastname = 'Foo'");
command.CommandText = "SELECT count(*) FROM TEST_User WHERE Lastname = 'Foo'"; Assert.That(query.UniqueResult<int>(), Is.EqualTo(0));
Assert.That(command.ExecuteScalar(), Is.EqualTo(0));
} }
[Test] [Test]
@@ -238,9 +235,8 @@ namespace Orchard.Tests.DataMigration {
_schemaBuilder _schemaBuilder
.ExecuteSql(String.Format("INSERT INTO TEST_Product (Price) VALUES ({0})", "123456.123456789")); .ExecuteSql(String.Format("INSERT INTO TEST_Product (Price) VALUES ({0})", "123456.123456789"));
var command = _session.Connection.CreateCommand(); var query = _session.CreateSQLQuery("SELECT MAX(Price) FROM TEST_Product");
command.CommandText = "SELECT MAX(Price) FROM TEST_Product"; Assert.That(query.UniqueResult(), Is.EqualTo(123456.123456789m));
Assert.That(command.ExecuteScalar(), Is.EqualTo(123456.123456789m));
} }
} }

View File

@@ -337,16 +337,14 @@ namespace Orchard.Data.Migration.Interpreters {
private void RunPendingStatements() { private void RunPendingStatements() {
var session = _sessionLocator.For(typeof(ContentItemRecord)); var session = _sessionLocator.For(typeof(ContentItemRecord));
var connection = session.Connection;
try { try {
foreach (var sqlStatement in _sqlStatements) { foreach (var sqlStatement in _sqlStatements) {
Logger.Debug(sqlStatement); Logger.Debug(sqlStatement);
using (var command = connection.CreateCommand()) {
command.CommandText = sqlStatement;
command.ExecuteNonQuery();
}
var query = session.CreateSQLQuery(sqlStatement);
query.ExecuteUpdate();
_reportsCoordinator.Information("Data Migration", String.Format("Executing SQL Query: {0}", sqlStatement)); _reportsCoordinator.Information("Data Migration", String.Format("Executing SQL Query: {0}", sqlStatement));
} }
} }