colourdto.cs
< /p>
Code: Select all
public class DtoColour {
public DtoColour(string name)
{
Name = name;
}
public string Name { get; set; }
}
< /code>
dowainColour.cs
< /p>
public class DomainColour {
public DomainColour(string name)
{
Name = name;
}
public string Name { get; set; }
}
< /code>
Repository.cs
< /p>
public class ColourRepository {
...
public IEnumerable GetWhere(Expression predicate)
{
// Context.Colours is of type ColourDto
return Context.Colours.Where(predicate).Map().ToList();
}
}
Testszenario
< /p>
Code: Select all
public class ColourRepository {
...
public IEnumerable GetWhere(Expression predicate)
{
var visitor = new MyExpressionVisitor();
var newPredicate = visitor.Visit(predicate) as Expression;
return Context.Colours.Where(newPredicate.Complie()).Map().ToList();
}
}
public class MyExpressionVisitor : ExpressionVisitor
{
protected override Expression VisitParameter(ParameterExpression node)
{
return Expression.Parameter(typeof(ColourDto), node.Name);
}
}
System.ArgumentException : Property 'System.String Name' is not
defined for type 'ColourDto'
Hope someone can help.
Bearbeiten: Hier ist eine Dotnetfiddle < /strong> < /p>
funktioniert immer noch nicht.>