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

View File

@@ -337,16 +337,14 @@ namespace Orchard.Data.Migration.Interpreters {
private void RunPendingStatements() {
var session = _sessionLocator.For(typeof(ContentItemRecord));
var connection = session.Connection;
try {
foreach (var sqlStatement in _sqlStatements) {
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));
}
}