Esempio n. 1
0
        public void WhenRecordInsertedWithAutoIncrementIdentityGetsUpdated()
        {
            DropTable.For <TableWithIncrement>().TryExecute(Connection);
            CreateTable.For <TableWithIncrement>().Execute(Connection);

            var first = new TableWithIncrement
            {
                Value = "Foo"
            };

            var second = new TableWithIncrement
            {
                Value = "Bar"
            };

            var numberFirst  = InsertInto.Row(first).GetLastInsertIdentity <ulong>().ExecuteRead(Connection).Single();
            var numberSecond = InsertInto.Row(second).GetLastInsertIdentity <ulong>().ExecuteRead(Connection).Single();

            Assert.That(numberFirst, Is.EqualTo(1));
            Assert.That(numberSecond, Is.EqualTo(2));

            var firstSelected = Select.From <TableWithIncrement>().WhereEqual(x => x.Identifier, 1UL)
                                .ExecuteRead(Connection)
                                .SingleOrDefault();

            Assert.IsNotNull(firstSelected);
            Assert.That(firstSelected.Identifier, Is.EqualTo(1UL));
            Assert.That(firstSelected.Value, Is.EqualTo("Foo"));
        }
        public void SupportForAutoIncrement()
        {
            var value = new TableWithIncrement
            {
                Value = "Foo"
            };

            string expected =
                $"INSERT INTO with_autoincrement (Value) VALUES ('Foo');{Environment.NewLine}SELECT LAST_INSERT_ID();";
            string command = InsertInto.Row(value).GetLastInsertIdentity <long>().Format(SqlFormat.MySql);

            Assert.That(command, Is.EqualTo(expected));
        }