/// <summary> /// Inserts a data object record using the "table" and a list of column/value pairs. /// </summary> /// <param name="transaction">The transaction to do this as part of.</param> /// <param name="mapping">The mapping of the table or other data container we're dealing with.</param> /// <param name="propValues">A dictionary of "column"/value pairs for the object to insert.</param> /// <returns>The number of records affected.</returns> public override int Insert(ITransaction transaction, ClassMapping mapping, IDictionary<string, object> propValues) { IDictionary<string, MemoryObject> table = GetTable(mapping); foreach (string colName in mapping.IdDataColsByObjAttrs.Values) { propValues[colName] = GetNextAutoGeneratedId(mapping, colName); } MemoryObject obj = new MemoryObject(mapping, propValues); lock (table) { table[obj.GetKey()] = obj; } return 1; }