public void AddParameters <T>(T obj, SqlSerializer.ParameterFlags flags = SqlSerializer.ParameterFlags.Default) { foreach (KeyValuePair <string, MappingInfo> keyValuePair in SqlSerializer.GetFieldMappings <T>()) { MappingInfo mappingInfo = keyValuePair.Value; if ((flags & SqlSerializer.ParameterFlags.IdFieldsOnly) == SqlSerializer.ParameterFlags.IdFieldsOnly && mappingInfo.MappingAttribute.IsId && ((flags & SqlSerializer.ParameterFlags.ExcludeIdentityFields) == SqlSerializer.ParameterFlags.ExcludeIdentityFields && !mappingInfo.MappingAttribute.IsIdentity)) { this._command.Parameters.AddWithValue("@" + mappingInfo.Name, mappingInfo.GetValue((object)obj)); } } }
private static object Deserialize(IDataRecord reader, Type type, bool dateTimeAsUtc = false) { if (type == typeof(ExpandoObject)) { ExpandoObject expandoObject = new ExpandoObject(); IDictionary <string, object> dictionary = (IDictionary <string, object>)expandoObject; for (int i = 0; i < reader.FieldCount; ++i) { dictionary.Add(reader.GetName(i), reader[i]); } return((object)expandoObject); } else { if (reader.GetFieldType(0) == type) { return(reader.GetValue(0)); } object instance = Activator.CreateInstance(type); Dictionary <string, MappingInfo> fieldMappings = SqlSerializer.GetFieldMappings(type); for (int i = 0; i < reader.FieldCount; ++i) { if (fieldMappings.ContainsKey(reader.GetName(i))) { MappingInfo mappingInfo = fieldMappings[reader.GetName(i)]; object obj = reader[i]; if (obj != null && obj != DBNull.Value) { if (obj is DateTime) { if (dateTimeAsUtc) { obj = (object)DateTime.SpecifyKind((DateTime)obj, DateTimeKind.Utc); } } try { mappingInfo.SetValue(instance, obj); } catch (Exception ex) { throw new ArgumentException(string.Format("Failed to map Type: {0}", (object)type), mappingInfo.Name, ex); } } } } return(instance); } }
public List <TReturn> DeserializeMultiRecords <TObject, TReturn>(bool dateTimeAsUtc = false) where TObject : class, new() { List <TReturn> list = new List <TReturn>(); using (this.OpenConnection()) { SqlDataReader sqlDataReader = this._command.ExecuteReader(); while (sqlDataReader.Read()) { list.Add(SqlSerializer.Deserialize <TObject, TReturn>((IDataRecord)sqlDataReader, dateTimeAsUtc)); } sqlDataReader.Close(); } return(list); }
public TReturn DeserializeSingleRecord <TObject, TReturn>(bool dateTimeAsUtc = false) where TObject : class, new() { TReturn @return = default(TReturn); using (this.OpenConnection()) { SqlDataReader sqlDataReader = this._command.ExecuteReader(CommandBehavior.SingleRow); if (sqlDataReader.Read()) { @return = SqlSerializer.Deserialize <TObject, TReturn>((IDataRecord)sqlDataReader, false); } sqlDataReader.Close(); } return(@return); }
public int ExecuteRowCount(string commandText, Parameter parameter, bool storedProcedure = false) { SqlSerializer sqlSerializer = this; string commandText1 = commandText; Parameter[] parameters; if (parameter == null) { parameters = (Parameter[])null; } else { parameters = new Parameter[1] { parameter } }; int num = storedProcedure ? 1 : 0; return(sqlSerializer.ExecuteRowCount(commandText1, parameters, num != 0)); }
public List <T> ExecuteScalarList <T>(string commandText, Parameter parameter = null, bool dateTimeAsUtc = false, bool storedProcedure = false) { SqlSerializer sqlSerializer = this; string commandText1 = commandText; Parameter[] parameters; if (parameter == null) { parameters = (Parameter[])null; } else { parameters = new Parameter[1] { parameter } }; int num1 = dateTimeAsUtc ? 1 : 0; int num2 = storedProcedure ? 1 : 0; return(sqlSerializer.ExecuteScalarList <T>(commandText1, parameters, num1 != 0, num2 != 0)); }
public List <T> DeserializeMultiRecords <T>(string commandText, Parameter parameter = null, bool dateTimeAsUtc = false, bool storedProcedure = false) where T : class, new() { SqlSerializer sqlSerializer = this; string commandText1 = commandText; Parameter[] parameters; if (parameter == null) { parameters = (Parameter[])null; } else { parameters = new Parameter[1] { parameter } }; int num1 = dateTimeAsUtc ? 1 : 0; int num2 = storedProcedure ? 1 : 0; return(sqlSerializer.DeserializeMultiRecords <T, T>(commandText1, parameters, num1 != 0, num2 != 0)); }
public object DeserializeSingleRecord(string commandText, Parameter parameter = null, bool dateTimeAsUtc = false, bool storedProcedure = false) { SqlSerializer sqlSerializer = this; string commandText1 = commandText; Parameter[] parameters; if (parameter == null) { parameters = (Parameter[])null; } else { parameters = new Parameter[1] { parameter } }; int num1 = dateTimeAsUtc ? 1 : 0; int num2 = storedProcedure ? 1 : 0; return(sqlSerializer.DeserializeSingleRecord <ExpandoObject, object>(commandText1, parameters, num1 != 0, num2 != 0)); }
public void DeserializeMultiSets(SetCollection sets, string commandText, Parameter parameter = null, bool dateTimeAsUtc = false, bool storedProcedure = false) { SqlSerializer sqlSerializer = this; SetCollection sets1 = sets; string commandText1 = commandText; Parameter[] parameters; if (parameter == null) { parameters = (Parameter[])null; } else { parameters = new Parameter[1] { parameter } }; int num1 = dateTimeAsUtc ? 1 : 0; int num2 = storedProcedure ? 1 : 0; sqlSerializer.DeserializeMultiSets(sets1, commandText1, parameters, num1 != 0, num2 != 0); }
public static Dictionary <string, MappingInfo> GetFieldMappings <T>() { return(SqlSerializer.GetFieldMappings(typeof(T))); }
private static TReturn Deserialize <TObject, TReturn>(IDataRecord reader, bool dateTimeAsUtc = false) where TObject : class, new() { return((TReturn)SqlSerializer.Deserialize(reader, typeof(TObject), dateTimeAsUtc)); }