EF自动映射器从2个表中获取属性

时间:2018-10-29 13:42:42

标签: entity-framework automapper

我有2个具有某些属性的表(其中一个表具有许多属性)。这些表之间的关系是多对多的。但是,我的选择将过滤结果,并使关系为1到1。这将使用Join完成。 有没有一种方法可以从一个表中获取数据,但也可以从另一表中获取相应的属性

例如: DeviceHierarchy

|----------|---------|----------|
|  Parent  |  Child  |  Depth   |
|----------|---------|----------|
|  12      |  12     |    1     |
|  12      |  25     |    2     |
|  12      |  30     |    3     |
|  12      |  45     |    2     |
|  12      |  40     |    3     |
|----------|---------|----------|

和设备

|----------|-----------|-------------|
|    ID    | ParentId  |     etc     |
|----------|-----------|-------------|
|    12    |    NULL   |     ...     |
|    25    |     12    |     ...     |
|    30    |     25    |     ...     |
|    45    |     12    |     ...     |
|    40    |     45    |     ...     |
|----------|-----------|-------------|

加入就是这样

Context.DeviceHierarchy // this is generate based on other joins and filters
       .Join(Context.Devices, h => h.Child, d => d.ID, (h, d) => d + h.Depth)
       .ProjectTo<MyComposedObject>(Mapper.ConfigurationProvider)

是否有一种简单的方法可以选择d + h.Depth来映射到MyComposedObject?我不想列举所有d的属性,因为有40-50个属性。是否可以在不枚举属性的情况下创建动态对象?

0 个答案:

没有答案