У нас есть специальная структура, которая называется Measure, и мы хотели бы использовать этот тип вместо типа поля базы данных, например, двойной.
Итак, у нас есть сущность:
public class MyEnity
{
public int MyValue { get; set; }
}
И у нас есть трансферный объект:
публичный класс MyDto
{
public Measure MyMeasureValue {get; задавать; }
}
Если тип свойства будет соответствовать, мы можем просто заполнить наши dto на проекцию:
enities.Select(i => new MyDto { MyMeasureValue = new Measure(i.MyValue, _unitsService.GetUnit("km")) });
Но так как EF не поддерживает такие операторы, мы должны заполнить это или загрузить всю сущность:
entities.Select(i => new { MyValue = i.MyValue })
.AsEnumerable()
.Select(i => new MyDto { MyMeasureValue = new Measure(i.MyValue, _unitsService.GetUnit("km")) } );
Мы хотим избежать этого зацикливания несколько раз в процессе пополнения, особенно потому что есть много свойств, которые нужно заполнить. Есть ли способ, которым мы можем пойти с первым утверждением и научить EF выполнять создание Меры? (например, перехват и т. д.)
PS. Невозможно создать сложный тип EF и отобразить его!
Спасибо, Enyra