1
我们有一个特定的结构称为措施,我们希望改为使用这种类型的数据库字段类型如的双。使用投影来填补未映射类型的EF
所以我们有一个实体:
public class MyEnity
{
public int MyValue { get; set; }
}
我们有一个传输对象: 公共类MyDto { 公共措施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
COMPLEXE类型是没办法,因为我们的类型,并必须有一个结构。 Automapper可能是一个解决方案,我必须澄清这一点。 – Enyra 2012-04-02 11:08:06