Example #1
0
        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);
            }
        }
Example #2
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.
        }
Example #3
0
        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);
        }
Example #4
0
        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);
        }