public void ShouldAlwaysCreateSequenceString() { var t1 = DateTime.UtcNow.Ticks; var t2 = DateTimeOffset.UtcNow.Ticks; var datas = Enumerable.Range(1, 1000).Select(p => SequentialKey.NewString()).ToList(); for (int i = 1; i < datas.Count; i++) { Assert.IsTrue(datas[i].CompareTo(datas[i - 1]) > 0); } }
internal static void MockSequentialKeyTempTable <T>(this DbQuery <T> dbQuery) where T : Model, new() { var sequentialKey = new SequentialKey(dbQuery.Model); var dbSession = dbQuery.DbSession; var tempTableName = dbSession.AssignTempTableName(sequentialKey); var queryStatement = dbQuery.QueryStatement; queryStatement.SequentialKeyTempTable = DbTable <SequentialKey> .CreateTemp(sequentialKey, dbQuery.DbSession, tempTableName); queryStatement.SequentialKeyTempTable.InitialRowCount = 1; // this value (zero or non-zero) determines whether child query should be created. }
internal static MySqlCommand[] GetCreateSequentialKeyTempTableCommands <T>(this DbQuery <T> dbQuery) where T : Model, new() { var mySqlSession = (MySqlSession)dbQuery.DbSession; var tempTableName = "#sys_sequential_" + typeof(T).Name; var result = new MySqlCommand[2]; var select = dbQuery.QueryStatement; var sequentialKey = new SequentialKey(select.Model); var query = select.GetSequentialKeySelectStatement(sequentialKey); var tempTable = DbTable <KeyOutput> .MockTemp(sequentialKey, mySqlSession, tempTableName); result[0] = mySqlSession.InternalGetCreateTableCommand(tempTable._, true); result[1] = mySqlSession.InternalGetInsertCommand(query.BuildToTempTableStatement()); return(result); }
public void ShouldAddEntitySuccess() { var store = this.GetService <IEntityStore <Topic> >(); string title = $"Title_{SequentialKey.NewString()}"; store.Add(new Topic { Title = title, Content = "This is content", CreateTime = DateTimeOffset.Now, Summary = "This is summary" }); var topicInDb = store.Query(p => p.Title == title).FirstOrDefault(); topicInDb.Should().NotBeNull(); topicInDb.Title.Should().Be(title); }