【问题标题】:mapping dto to entities? maybe automapper? should properties match? linq selection将dto映射到实体?也许自动映射器?属性应该匹配吗? linq 选择
【发布时间】:2013-07-25 12:34:36
【问题描述】:

我正在尝试使用我将称为基本 linq-to-sql 的东西创建一个 LINQ-to-SQL 解决方案。它不是通过 EF 或类似的方式提供的完整 ORM 解决方案。现在的重点是利用 LINQ 的强大功能并减少存储过程(以及其他一些好处)。

我之前做过一些 DTO 和实体的工作……但这也是一个自定义实现。在那个实现中使用了自动映射器。当实体属性与 DTO 属性匹配时,我知道自动映射器“效果最佳”。但如果他们不这样做呢?可以自定义配置吗?

我想一个更大的问题是......对于您无法在查询中实例化“LINQ 映射”“实体”这一事实,这是一个真正的解决方案。需要明确的是,您不能使用 linq 并选择一个新的“实体”,您必须选择一个未映射的 DTO。我最终要做的是避免在给定查询中将实体“映射”到 DTO。我想这没什么大不了的,但是像 automapper 这样的东西能解决这个问题吗?

【问题讨论】:

    标签: c# linq automapper dto


    【解决方案1】:

    我不确定你在问什么,但是:

    我知道当实体属性与 DTO 属性匹配时,自动映射器“效果最佳”。但如果他们不这样做呢?可以自定义配置吗?

    如果你问我认为你在问什么,你应该研究 .ForMember 并覆盖 Convert 函数。 wiki 上有这两个例子: .会员:https://github.com/AutoMapper/AutoMapper/wiki/Projection 转换:https://github.com/AutoMapper/AutoMapper/wiki/Custom-type-converters

    当 dto 和实体匹配时,Automapper 确实“最好”工作,因为在两者之间设置映射非常容易,因为它们的属性名称和类型匹配。当它们不匹配时,您需要使用 .ForMember 手动选择属性或通过覆盖 Convert 函数手动进行整个转换。

    我希望这有点帮助。如果不是,请在下方发表评论,或者您需要更多信息。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2018-09-13
      • 2011-01-13
      • 2011-01-05
      • 1970-01-01
      • 2022-01-08
      • 2019-08-18
      相关资源
      最近更新 更多