コード例 #1
0
        /// <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());
        }
コード例 #2
0
        protected override SqlCommandInfo GenerateIdentityInsertRowString()
        {
            // NH specific to manage identity for id-bag (NH-364)
            SqlInsertBuilder insert = identityDelegate.PrepareIdentifierGeneratingInsert();
            insert.SetTableName(qualifiedTableName).AddColumns(KeyColumnNames, null, KeyType);

            if (HasIndex)
                insert.AddColumns(IndexColumnNames, null, IndexType);

            insert.AddColumns(ElementColumnNames, elementColumnIsSettable, ElementType);

            if (Factory.Settings.IsCommentsEnabled)
                insert.SetComment("insert collection row " + Role);

            return insert.ToSqlCommandInfo();
        }
コード例 #3
0
        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");
        }