Hi, I am working on an applicaition in which I am communicating Database via Generic Repository and UnitOfWork. In my service layer i have to convert my viewmodels to actual database models ,with the help of automapper, in order to get data from database. All is going well but I having issue when want to convert exression by automapper. It is converted but when in this method
public IQueryable<TEntity> GetWithInclude(System.Linq.Expressions.Expression<Func<TEntity, bool>> predicate, params string[] include) { IQueryable<TEntity> query = this.DbSet; query = include.Aggregate(query, (current, inc) => current.Include(inc)); var result= query.Where(predicate).ToList(); return query.Where(predicate); } t this statement: var result= query.Where(predicate).ToList(); try to execute it gives this error.
System.ArgumentException: 'ParameterExpression of type 'BusinessEntities.ProductEntity' cannot be used for delegate parameter of type 'DataModel.Data.tblProduct''
here is debug view after conversion .Lambda #Lambda1<System.Func`2[DataModel.Data.tblProduct,System.Boolean]>(BusinessEntities.ProductEntity $x) { $x.Price > (System.Nullable`1[System.Decimal])((System.Decimal)0) }
this is my mapping code
MapperConfiguration _config = new MapperConfiguration(cfg => cfg.CreateMap<Expression<Func<ProductEntity, bool>> , Expression<Func<tblProduct, bool>>> ()); IMapper _Mapper = _config.CreateMapper(); var exp = _Mapper.Map<Expression<Func<tblProduct, bool>>>(query);
How can I change delegate parameter to type tblProduct.
Thanks in advance.
Regards,
Asif Aziz.