This commit is contained in:
sunkaixuan
2017-05-17 16:48:58 +08:00
parent 549a9e6993
commit 248a48f9f7
3 changed files with 23 additions and 5 deletions

View File

@@ -11,7 +11,7 @@ namespace SqlSugar
{ {
public class RewritableMethods : IRewritableMethods public class RewritableMethods : IRewritableMethods
{ {
/// <summary> /// <summary>
///DataReader to Dynamic ///DataReader to Dynamic
/// </summary> /// </summary>
@@ -39,7 +39,7 @@ namespace SqlSugar
/// </summary> /// </summary>
/// <param name="reader"></param> /// <param name="reader"></param>
/// <returns></returns> /// <returns></returns>
public Dictionary<string,object> DataReaderToDictionary(IDataReader reader) public Dictionary<string, object> DataReaderToDictionary(IDataReader reader)
{ {
Dictionary<string, object> result = new Dictionary<string, object>(); Dictionary<string, object> result = new Dictionary<string, object>();
for (int i = 0; i < reader.FieldCount; i++) for (int i = 0; i < reader.FieldCount; i++)
@@ -79,7 +79,7 @@ namespace SqlSugar
var typeName = tType.Name; var typeName = tType.Name;
if (item.PropertyType.IsClass()) if (item.PropertyType.IsClass())
{ {
result.Add(name,DataReaderToDynamicList_Part(readerValues, item, reval)); result.Add(name, DataReaderToDynamicList_Part(readerValues, item, reval));
} }
else else
{ {
@@ -96,7 +96,7 @@ namespace SqlSugar
} }
return reval; return reval;
} }
private Dictionary<string,object> DataReaderToDynamicList_Part<T>(Dictionary<string, object> readerValues,PropertyInfo item, List<T> reval) private Dictionary<string, object> DataReaderToDynamicList_Part<T>(Dictionary<string, object> readerValues, PropertyInfo item, List<T> reval)
{ {
Dictionary<string, object> result = new Dictionary<string, object>(); Dictionary<string, object> result = new Dictionary<string, object>();
var type = item.PropertyType; var type = item.PropertyType;
@@ -139,5 +139,21 @@ namespace SqlSugar
{ {
return JsonConvert.DeserializeObject<T>(value); return JsonConvert.DeserializeObject<T>(value);
} }
/// <summary>
/// Copy new Object
/// </summary>
/// <typeparam name="T"></typeparam>
/// <param name="sourceObject"></param>
/// <returns></returns>
public T TranslateCopy<T>(T sourceObject)
{
if (sourceObject == null) return default(T);
else
{
var jsonString = SerializeObject(sourceObject);
return DeserializeObject<T>(jsonString);
}
}
} }
} }

View File

@@ -25,5 +25,6 @@ namespace SqlSugar
/// <param name="value"></param> /// <param name="value"></param>
/// <returns></returns> /// <returns></returns>
T DeserializeObject<T>(string value); T DeserializeObject<T>(string value);
T TranslateCopy<T>(T sourceObject);
} }
} }

View File

@@ -63,7 +63,8 @@ namespace SqlSugar
} }
} }
} }
return Tuple.Create<MappingTableList, MappingColumnList, IgnoreComumnList>(this.MappingTables,this.MappingColumns,this.IgnoreColumns); var result= Tuple.Create<MappingTableList, MappingColumnList, IgnoreComumnList>(this.MappingTables,this.MappingColumns,this.IgnoreColumns);
return this.Context.RewritableMethods.TranslateCopy(result);
}); });
} }
} }