Рассмотрим следующую сущность:
public class Model
{
public int Id { get; set; }
public decimal Value { get; set; }
}
Я хотел бы округлить любое значение decimal
перед назначением экземпляру модели. Я мог бы сделать это следующим образом:
dbContext.Models
.Select(model => new
{
Id = model.Id,
Value = Math.Round(model.Value, 10)
}
.ToList()
.Select(anonymous =>
new Model
{
Id = anonymous.Id
Value = anonymous.Value
});
Он отлично работает, но у меня есть объект, содержащий более 100 столбцов. Можно ли построить проекцию, которая автоматически перебирает свойства и вызывает Math.Round
для decimal
свойств и создает экземпляр модели объекта с новыми значениями?
Мне не нужна реализация - только подскажите, можно ли это сделать с деревом выражений или нужно искать другое решение.
NotSupportedException
. 06.08.2014dbContext.Models.RoundDecimals().ToList()
. В любом случае - клиентExpressionVisitor
будет принят EF? 06.08.2014ExpressionVisitor
. 06.08.2014