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); } }
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)); } }
void EnsureTableCreated() { lock (_locker) { if (_schema == null) { _schema = Database.SqlExecuter.GetSchema(Name); } if (!_schema.Created) { Database.SqlExecuter.CreateTable(Name); _schema = Database.SqlExecuter.GetSchema(Name); } } }
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); }
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); }
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)); } }