Example #1
0
        private static IdentityCreatorEntity GetCurrentSeed(string key, string dimension, Database db, DbTransaction trans)
        {
            var sql = string.Format("SELECT * FROM identity_creator WITH (HOLDLOCK, UPDLOCK) WHERE identity_key=@p_key and dimension=@p_dimension", COLUMNS);
            var dc  = db.GetSqlStringCommand(sql);

            db.AddInParameter(dc, "p_key", DbType.String, key);
            db.AddInParameter(dc, "p_dimension", DbType.String, dimension);

            using (var reader = db.ExecuteReader(dc, trans))
            {
                if (reader.Read())
                {
                    var entity = new IdentityCreatorEntity();
                    entity.Init(reader);

                    return(entity);
                }
            }

            return(Create(key, dimension, db, trans));
        }
Example #2
0
        private static IdentityCreatorEntity Create(string key, string dimension, Database db, DbTransaction trans)
        {
            var entity = new IdentityCreatorEntity
            {
                IdentityKey = key,
                Dimension   = dimension,
                Seed        = 1,
                Step        = 1
            };

            var sql = string.Format("insert into identity_creator({0}) values(@p_identity_key,@p_dimension,@p_seed,@p_step)", COLUMNS);
            var dc  = db.GetSqlStringCommand(sql);

            db.AddInParameter(dc, "p_identity_key", DbType.String, entity.IdentityKey);
            db.AddInParameter(dc, "p_dimension", DbType.String, entity.Dimension);
            db.AddInParameter(dc, "p_seed", DbType.String, entity.Seed);
            db.AddInParameter(dc, "p_step", DbType.String, entity.Step);

            db.ExecuteNonQuery(dc, trans);

            return(entity);
        }