public IDictionary<string, object> Insert(AdoAdapter adapter, string tableName, IDictionary<string, object> data, IDbTransaction transaction, bool returnRequired) { var s = DatabaseSchema.Get(adapter.ConnectionProvider, new ProviderHelper()); var table = s.FindTable(tableName); var tuples = InitializeInsertion(table); foreach (var d in data) tuples[d.Key.Homogenize()].InsertedValue = d.Value; Func<IDbCommand> command = () => { var c = transaction != null ? transaction.Connection.CreateCommand() : adapter.CreateConnection().CreateCommand(); return c; }; IDbCommand cmd; using (cmd = ConstructCommand(tuples, table.QualifiedName, command)) { cmd.WriteTrace(); cmd.Connection.TryOpen(); cmd.ExecuteNonQuery(); var returnData = new DbDictionary(); foreach (var it in tuples.Values) returnData.Add(it.SimpleDataColumn, NormalizeReturningValue((IDbDataParameter)cmd.Parameters[it.ReturningParameterName])); data = returnData; } return data; }
private void ReadCache() { ZCache Cache = Shared.ZCacheDb.GetCache(CacheId); if (Cache != null) { ZoneMap = new DbDictionary(); ZoneMap.Data = Cache.Data.StringValue; } else if (ZoneMap == null) { ZoneMap = new DbDictionary(); } }