Exemplo n.º 1
0
        public virtual void Append(string name, object data, RelationalSchema schema)
        {
            var dic        = data as IDictionary <string, object>;
            var removeKeys = new List <string>();

            foreach (var item in dic)
            {
                if (schema.Items.All(a => a.Name != item.Key))
                {
                    removeKeys.Add(item.Key);
                }
            }

            foreach (var item in removeKeys)
            {
                dic.Remove(item);
            }

            var columns = string.Join(",", dic.Select(s => $@"{WarpField(s.Key)}"));
            var values  = string.Join(",", dic.Select(s => $"@{s.Key}"));
            var sql     = $@"INSERT INTO {WarpField(name)} ({columns}) VALUES ({values})";

            using (var connection = CreateConnection())
            {
                connection.Execute(sql, data);
            }
        }
Exemplo n.º 2
0
        public virtual object Insert(string name, object data, RelationalSchema schema, bool returnId = false)
        {
            var dic     = data as IDictionary <string, object>;
            var columns = string.Join(",", dic.Select(s => $@"{WarpField(s.Key)}"));
            var values  = string.Join(",", dic.Select(s => $"@{s.Key}"));
            var sql     = $@"INSERT INTO {WarpField(name)}({columns}) VALUES ({values})";

            if (!returnId)
            {
                using (var connection = CreateConnection())
                {
                    var @params = new[] { data };
                    OnSqlExecute(sql, @params);
                    connection.Execute(sql, @params);
                    return(null);
                }
            }

            var whereCaluse = String.Join(" and ", dic.Select(o => $"{WarpField(o.Key)}=@{o.Key}"));

            sql += StatementDelimiter + $"SELECT {WarpField(schema.PrimaryKey)} FROM {WarpField(name)} WHERE {whereCaluse}";
            using (var connection = CreateConnection())
            {
                OnSqlExecute(sql, data);
                return(connection.ExecuteScalar(sql, data));
            }
        }
Exemplo n.º 3
0
        void EnsureTableCreated()
        {
            lock (_locker)
            {
                if (_schema == null)
                {
                    _schema = Database.SqlExecuter.GetSchema(Name);
                }

                if (!_schema.Created)
                {
                    Database.SqlExecuter.CreateTable(Name);
                    _schema = Database.SqlExecuter.GetSchema(Name);
                }
            }
        }
Exemplo n.º 4
0
        public List <Item> Compatible(RelationalSchema schema)
        {
            var newItems = new List <Item>();

            foreach (var item in schema._items)
            {
                var findItem = _items.FirstOrDefault(f => f.Name == item.Name);

                if (findItem == null)
                {
                    newItems.Add(item);
                    continue;
                }
            }

            return(newItems);
        }
Exemplo n.º 5
0
        public List <Item> Compatible(RelationalSchema schema)
        {
            var newItems = new List <Item>();

            foreach (var item in schema._items)
            {
                var findItem = _items.Find(f => Lib.Helper.StringHelper.IsSameValue(f.Name, item.Name));

                if (findItem == null)
                {
                    newItems.Add(item);
                    continue;
                }
            }

            return(newItems);
        }
Exemplo n.º 6
0
        public virtual object Append(string name, object data, RelationalSchema schema, bool returnId = false)
        {
            var dic        = data as IDictionary <string, object>;
            var removeKeys = new List <string>();

            foreach (var item in dic)
            {
                if (schema.Items.All(a => a.Name != item.Key))
                {
                    removeKeys.Add(item.Key);
                }
            }

            foreach (var item in removeKeys)
            {
                dic.Remove(item);
            }

            var columns = string.Join(",", dic.Select(s => $@"{WarpField(s.Key)}"));
            var values  = string.Join(",", dic.Select(s => $"@{s.Key}"));
            var sql     = $@"INSERT INTO {WarpField(name)} ({columns}) VALUES ({values})";

            if (!returnId)
            {
                using (var connection = CreateConnection())
                {
                    OnSqlExecute(sql, data);
                    connection.Execute(sql, data);
                    return(null);
                }
            }

            var whereCaluse = String.Join(" and ", dic.Select(o => $"{WarpField(o.Key)}=@{o.Key}"));

            sql += StatementDelimiter + $"SELECT {WarpField(schema.PrimaryKey)} FROM {WarpField(name)} WHERE {whereCaluse}";
            using (var connection = CreateConnection())
            {
                OnSqlExecute(sql, data);
                return(connection.ExecuteScalar(sql, data));
            }
        }