代码之家  ›  专栏  ›  技术社区  ›  Ben Hughes

将部分填充的DTO映射到域对象

  •  2
  • Ben Hughes  · 技术社区  · 14 年前

    在部分填充的dto中,处理不可为null(值)类型的常用方法是什么?对于可为null的类型,我只检查DTO值是否为null,如果不是,则在DO上设置相应的值。但是非空值将始终包含一个值,该值可能由PL设置,也可能不由PL设置。

    我可以:

    • 使用DTO中的自由格式字符串作为概念上的值类型属性,并与值类型进行转换
    • 使PL调用成为服务方法来更新值属性,而不是通过DTO传递它们
    • 强制PL始终向更新服务发送完全填充的DTO

    这些似乎都不理想:有没有我错过的选择?还是我从错误的角度看待这个问题?

    如果相关的话,我用的是C#4,WCF和ASP.NETMVC公司

    2 回复  |  直到 14 年前
        1
  •  1
  •   orka    14 年前

    你能提供更多关于你提到的不可为null的值类型的信息吗?你知道吗 Nullable Types

        2
  •  1
  •   VinayC    14 年前

    我通常不喜欢这样的部分更新—如果允许这些更新,那么IMO创建一个复合DTO(将属性划分为子对象所拥有的属性组)是有意义的,其中客户端能够在组级别进行更新(即,组中的所有属性都必须填充)。如果每个属性级别都需要更新控件,那么使用PropertyBag(名称/索引-值对字典)类型的DTO更有意义。