public void Commented() { Configuration cfg = new Configuration(); ISessionFactory factory = cfg.BuildSessionFactory(); ISessionFactoryImplementor factoryImpl = (ISessionFactoryImplementor)factory; SqlInsertBuilder insert = new SqlInsertBuilder(factoryImpl); insert.SetTableName("test_insert_builder"); insert.AddColumn("stringColumn", "aSQLValue", (ILiteralType)NHibernateUtil.String); insert.SetComment("Test insert"); string expectedSql = "/* Test insert */ INSERT INTO test_insert_builder (stringColumn) VALUES ('aSQLValue')"; Assert.AreEqual(expectedSql, insert.ToSqlString().ToString(), "SQL String"); }
/// <summary> /// Generate the SQL INSERT that creates a new row /// </summary> /// <returns></returns> protected override SqlCommandInfo GenerateInsertRowString() { SqlInsertBuilder insert = new SqlInsertBuilder(Factory) .SetTableName(qualifiedTableName) .AddColumns(KeyColumnNames, null, KeyType); if (hasIdentifier) insert.AddColumns(new string[] {IdentifierColumnName}, null, IdentifierType); if (HasIndex) insert.AddColumns(IndexColumnNames, indexColumnIsSettable, IndexType); if (Factory.Settings.IsCommentsEnabled) insert.SetComment("insert collection row " + Role); insert.AddColumns(ElementColumnNames, elementColumnIsSettable, ElementType); return insert.ToSqlCommandInfo(); }
/// <summary> Generate the SQL that inserts a row</summary> protected virtual SqlCommandInfo GenerateInsertString(bool identityInsert, bool[] includeProperty, int j) { // todo : remove the identityInsert param and variations; // identity-insert strings are now generated from generateIdentityInsertString() SqlInsertBuilder builder = new SqlInsertBuilder(Factory).SetTableName(GetTableName(j)); // add normal properties for (int i = 0; i < entityMetamodel.PropertySpan; i++) { if (includeProperty[i] && IsPropertyOfTable(i, j)) { // this property belongs on the table and is to be inserted builder.AddColumns(GetPropertyColumnNames(i), propertyColumnInsertable[i], PropertyTypes[i]); } } // add the discriminator if (j == 0) { AddDiscriminatorToInsert(builder); } // add the primary key if (j == 0 && identityInsert) { builder.AddIdentityColumn(GetKeyColumns(0)[0]); } else { builder.AddColumns(GetKeyColumns(j), null, IdentifierType); } if (Factory.Settings.IsCommentsEnabled) { builder.SetComment("insert " + EntityName); } // append the SQL to return the generated identifier if (j == 0 && identityInsert && UseInsertSelectIdentity()) { SqlString sql = builder.ToSqlString(); return new SqlCommandInfo(Factory.Dialect.AppendIdentitySelectToInsert(sql), builder.GetParametersTypeArray()); } return builder.ToSqlCommandInfo(); }