1

我有两个调用 Orders 和 ImportedOrders 的 LINQ 表对象,它们具有完全相同的属性,但 ImportedOrders 还有一个属性。导入后,订单获得 ImportedOrder,因此我必须将值复制到新的 ImportedOrders 对象中。

我想摆脱这种过于丑陋的方法 - 最好不反思。我认为这可以用表达式来完成,但我对表达式树的使用不仅仅是生锈。

    private static ImportedOrders MapNewOrder(Order order, int uebergabeNr)
    {
        return new ImportedOrders
        {
            DFÜ_PARTNER_ID = order.DFÜ_PARTNER_ID,
            KD_BESTELL_NR = order.KD_BESTELL_NR,
            BEST_DAT = order.BEST_DAT,
            LIEF_DAT = order.LIEF_DAT,
            ILN_KUNDE = order.ILN_KUNDE,
            KUNDE_NR = order.KUNDE_NR,
            ILN_RG_EMPFG = order.ILN_RG_EMPFG,
            RG_EMPFG_NR = order.RG_EMPFG_NR,
            ILN_LIEFERANT = order.ILN_LIEFERANT,

            // ... 30 more properties ...

            Uebergabe_Nr = uebergabeNr // < the only difference
        };
    }

编辑:

按照Amittai Shapira的建议使用AutoMapper后,相关逻辑现在如下所示:

Mapper.CreateMap<Order, ImportedOrders>()
    .ForMember(o => o.Uebergabe_Nr, mo => mo.UseValue(uebergabeNr));

这就是我所说的改进:-)

4

1 回答 1

2

试试AutoMapper,我想这就是你所追求的......

于 2011-10-12T11:06:35.140 回答