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)); }