У нас есть определенная структура, называемая Measure, и мы хотели бы использовать этот тип вместо типа поля базы данных, например. двойной.Использовать проекцию для заполнения не отображаемых типов в EF
Таким образом, мы имеем объект:
public class MyEnity
{
public int MyValue { get; set; }
}
И у нас есть объект передачи: общественного класса MyDto { общественного Measure MyMeasureValue {получить; задавать; } }
Если тип недвижимости будет соответствовать, мы можем только заполнить наши 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
Типы комплексов не являются опцией, потому что наш тип является и должен быть структурой. Automapper может быть решением, я должен это прояснить. – Enyra