Open IfunJoework opened 2 months ago
Referring to the previous isusses to create PropertyHandler, an error occurred during test execution. After lowering the version, it can be executed normally.
Exception Message:
ArgumentException: Expression of type 'System.String' cannot be used for parameter of type 'System.Ulid' of method 'Void set_Id(System.Ulid)' (Parameter 'arg0') System.Dynamic.Utils.ExpressionUtils.ValidateOneArgument(MethodBase method, ExpressionType nodeKind, Expression arguments, ParameterInfo pi, string methodParamName, string argumentParamName, int index) System.Linq.Expressions.Expression.Call(Expression instance, MethodInfo method, Expression arg0) System.Linq.Expressions.Expression.Call(Expression instance, MethodInfo method, IEnumerable<Expression> arguments) RepoDb.Reflection.Compiler.CompileDataEntityPropertySetter(Type entityType, PropertyInfo property, Type targetType) RepoDb.Reflection.Compiler.CompileDataEntityPropertySetter(Type entityType, Field field) RepoDb.Reflection.FunctionFactory.CompileDataEntityPropertySetter(Type entityType, Field field) RepoDb.FunctionCache+DataEntityPropertySetterCache.Get(Type type, Field field) RepoDb.FunctionCache.GetDataEntityPropertySetterCompiledFunction(Type entityType, Field field) RepoDb.Contexts.Providers.InsertExecutionContextProvider.CreateInternal(Type entityType, IDbConnection connection, IEnumerable<DbField> dbFields, string tableName, IEnumerable<Field> fields, string commandText) RepoDb.Contexts.Providers.InsertExecutionContextProvider.Create(Type entityType, IDbConnection connection, string tableName, IEnumerable<Field> fields, string hints, IDbTransaction transaction, IStatementBuilder statementBuilder) RepoDb.DbConnectionExtension.InsertInternalBase<TEntity, TResult>(IDbConnection connection, string tableName, TEntity entity, IEnumerable<Field> fields, string hints, Nullable<int> commandTimeout, string traceKey, IDbTransaction transaction, ITrace trace, IStatementBuilder statementBuilder) RepoDb.DbConnectionExtension.InsertInternal<TEntity, TResult>(IDbConnection connection, string tableName, TEntity entity, IEnumerable<Field> fields, string hints, Nullable<int> commandTimeout, string traceKey, IDbTransaction transaction, ITrace trace, IStatementBuilder statementBuilder) RepoDb.DbConnectionExtension.Insert<TEntity>(IDbConnection connection, TEntity entity, IEnumerable<Field> fields, string hints, Nullable<int> commandTimeout, string traceKey, IDbTransaction transaction, ITrace trace, IStatementBuilder statementBuilder)
PropertyHandler:
public class UlidPropertyHandler : IPropertyHandler<string, Ulid> { public Ulid Get(string input, ClassProperty options) { return Ulid.Parse(input); } public string Set(Ulid input, ClassProperty options) { return input.ToString(); } }
The same code will work fine with RepoDb 1.12.10 / 1RepoDb.SqlServer .1.5
Library Version:
RepoDb v1.13.1 and RepoDb.SqlServer v1.13.1
Bug Description
Referring to the previous isusses to create PropertyHandler, an error occurred during test execution. After lowering the version, it can be executed normally.
Exception Message:
PropertyHandler:
The same code will work fine with RepoDb 1.12.10 / 1RepoDb.SqlServer .1.5
Library Version:
RepoDb v1.13.1 and RepoDb.SqlServer v1.13.1