This commit is contained in:
@@ -3698,9 +3698,7 @@ namespace DynamORM
|
|||||||
/// <returns>Returns instance of builder on which action is set.</returns>
|
/// <returns>Returns instance of builder on which action is set.</returns>
|
||||||
public static T CreateTemporaryParameterAction<T>(this T b, Action<IParameter> a) where T : IDynamicQueryBuilder
|
public static T CreateTemporaryParameterAction<T>(this T b, Action<IParameter> a) where T : IDynamicQueryBuilder
|
||||||
{
|
{
|
||||||
if (a == null)
|
if (a != null)
|
||||||
b.OnCreateTemporaryParameter = null;
|
|
||||||
else
|
|
||||||
{
|
{
|
||||||
if (b.OnCreateTemporaryParameter == null)
|
if (b.OnCreateTemporaryParameter == null)
|
||||||
b.OnCreateTemporaryParameter = new List<Action<IParameter>>();
|
b.OnCreateTemporaryParameter = new List<Action<IParameter>>();
|
||||||
@@ -3718,9 +3716,7 @@ namespace DynamORM
|
|||||||
/// <returns>Returns instance of builder on which action is set.</returns>
|
/// <returns>Returns instance of builder on which action is set.</returns>
|
||||||
public static T CreateParameterAction<T>(this T b, Action<IParameter, IDbDataParameter> a) where T : IDynamicQueryBuilder
|
public static T CreateParameterAction<T>(this T b, Action<IParameter, IDbDataParameter> a) where T : IDynamicQueryBuilder
|
||||||
{
|
{
|
||||||
if (a == null)
|
if (a != null)
|
||||||
b.OnCreateParameter = null;
|
|
||||||
else
|
|
||||||
{
|
{
|
||||||
if (b.OnCreateParameter == null)
|
if (b.OnCreateParameter == null)
|
||||||
b.OnCreateParameter = new List<Action<IParameter, IDbDataParameter>>();
|
b.OnCreateParameter = new List<Action<IParameter, IDbDataParameter>>();
|
||||||
@@ -7090,6 +7086,8 @@ namespace DynamORM
|
|||||||
VirtualMode = false;
|
VirtualMode = false;
|
||||||
Tables = new List<ITableInfo>();
|
Tables = new List<ITableInfo>();
|
||||||
Parameters = new Dictionary<string, IParameter>();
|
Parameters = new Dictionary<string, IParameter>();
|
||||||
|
OnCreateTemporaryParameter = new List<Action<IParameter>>();
|
||||||
|
OnCreateParameter = new List<Action<IParameter, IDbDataParameter>>();
|
||||||
|
|
||||||
WhereCondition = null;
|
WhereCondition = null;
|
||||||
OpenBracketsCount = 0;
|
OpenBracketsCount = 0;
|
||||||
@@ -11872,18 +11870,28 @@ namespace DynamORM
|
|||||||
|
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
if (Type.IsArray || _genericEnumerable)
|
if (!Type.IsAssignableFrom(val.GetType()))
|
||||||
{
|
{
|
||||||
var lst = (val as IEnumerable<object>).Select(x => GetElementVal(_arrayType, x)).ToList();
|
if (Type.IsArray || _genericEnumerable)
|
||||||
|
{
|
||||||
|
if (val != null)
|
||||||
|
{
|
||||||
|
var lst = (val as IEnumerable<object>).Select(x => GetElementVal(_arrayType, x)).ToList();
|
||||||
|
|
||||||
value = Array.CreateInstance(_arrayType, lst.Count);
|
value = Array.CreateInstance(_arrayType, lst.Count);
|
||||||
|
|
||||||
int i = 0;
|
int i = 0;
|
||||||
foreach (var e in lst)
|
foreach (var e in lst)
|
||||||
((Array)value).SetValue(e, i++);
|
((Array)value).SetValue(e, i++);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
value = Array.CreateInstance(_arrayType, 0);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
value = GetElementVal(Type, val);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
value = GetElementVal(Type, val);
|
value = val;
|
||||||
|
|
||||||
Setter(dest, value);
|
Setter(dest, value);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -30,6 +30,8 @@ using System.Linq;
|
|||||||
using DynamORM.Builders;
|
using DynamORM.Builders;
|
||||||
using DynamORM.Builders.Implementation;
|
using DynamORM.Builders.Implementation;
|
||||||
using NUnit.Framework;
|
using NUnit.Framework;
|
||||||
|
using DynamORM.Tests.Helpers;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
|
||||||
namespace DynamORM.Tests.Modify
|
namespace DynamORM.Tests.Modify
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -214,6 +214,8 @@ namespace DynamORM.Builders.Implementation
|
|||||||
VirtualMode = false;
|
VirtualMode = false;
|
||||||
Tables = new List<ITableInfo>();
|
Tables = new List<ITableInfo>();
|
||||||
Parameters = new Dictionary<string, IParameter>();
|
Parameters = new Dictionary<string, IParameter>();
|
||||||
|
OnCreateTemporaryParameter = new List<Action<IParameter>>();
|
||||||
|
OnCreateParameter = new List<Action<IParameter, IDbDataParameter>>();
|
||||||
|
|
||||||
WhereCondition = null;
|
WhereCondition = null;
|
||||||
OpenBracketsCount = 0;
|
OpenBracketsCount = 0;
|
||||||
|
|||||||
@@ -877,9 +877,7 @@ namespace DynamORM
|
|||||||
/// <returns>Returns instance of builder on which action is set.</returns>
|
/// <returns>Returns instance of builder on which action is set.</returns>
|
||||||
public static T CreateTemporaryParameterAction<T>(this T b, Action<IParameter> a) where T : IDynamicQueryBuilder
|
public static T CreateTemporaryParameterAction<T>(this T b, Action<IParameter> a) where T : IDynamicQueryBuilder
|
||||||
{
|
{
|
||||||
if (a == null)
|
if (a != null)
|
||||||
b.OnCreateTemporaryParameter = null;
|
|
||||||
else
|
|
||||||
{
|
{
|
||||||
if (b.OnCreateTemporaryParameter == null)
|
if (b.OnCreateTemporaryParameter == null)
|
||||||
b.OnCreateTemporaryParameter = new List<Action<IParameter>>();
|
b.OnCreateTemporaryParameter = new List<Action<IParameter>>();
|
||||||
@@ -897,9 +895,7 @@ namespace DynamORM
|
|||||||
/// <returns>Returns instance of builder on which action is set.</returns>
|
/// <returns>Returns instance of builder on which action is set.</returns>
|
||||||
public static T CreateParameterAction<T>(this T b, Action<IParameter, IDbDataParameter> a) where T : IDynamicQueryBuilder
|
public static T CreateParameterAction<T>(this T b, Action<IParameter, IDbDataParameter> a) where T : IDynamicQueryBuilder
|
||||||
{
|
{
|
||||||
if (a == null)
|
if (a != null)
|
||||||
b.OnCreateParameter = null;
|
|
||||||
else
|
|
||||||
{
|
{
|
||||||
if (b.OnCreateParameter == null)
|
if (b.OnCreateParameter == null)
|
||||||
b.OnCreateParameter = new List<Action<IParameter, IDbDataParameter>>();
|
b.OnCreateParameter = new List<Action<IParameter, IDbDataParameter>>();
|
||||||
|
|||||||
@@ -147,18 +147,28 @@ namespace DynamORM.Mapper
|
|||||||
|
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
if (Type.IsArray || _genericEnumerable)
|
if (!Type.IsAssignableFrom(val.GetType()))
|
||||||
{
|
{
|
||||||
var lst = (val as IEnumerable<object>).Select(x => GetElementVal(_arrayType, x)).ToList();
|
if (Type.IsArray || _genericEnumerable)
|
||||||
|
{
|
||||||
|
if (val != null)
|
||||||
|
{
|
||||||
|
var lst = (val as IEnumerable<object>).Select(x => GetElementVal(_arrayType, x)).ToList();
|
||||||
|
|
||||||
value = Array.CreateInstance(_arrayType, lst.Count);
|
value = Array.CreateInstance(_arrayType, lst.Count);
|
||||||
|
|
||||||
int i = 0;
|
int i = 0;
|
||||||
foreach (var e in lst)
|
foreach (var e in lst)
|
||||||
((Array)value).SetValue(e, i++);
|
((Array)value).SetValue(e, i++);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
value = Array.CreateInstance(_arrayType, 0);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
value = GetElementVal(Type, val);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
value = GetElementVal(Type, val);
|
value = val;
|
||||||
|
|
||||||
Setter(dest, value);
|
Setter(dest, value);
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user