【发布时间】:2015-10-13 00:16:33
【问题描述】:
我有一个行为类 TaskBehavior,它有一个单参数构造函数,它驱动表单中属性的可见性,同时驱动应该映射到数据库实体的属性。 其次,我有一个 DTO 类 TaskDto,最后是一个数据库实体 Task:
public class TaskDto
{
public string Name { get; set; }
public string Description { get; set; }
}
public class Task
{
public string Name { get; set; }
public string Description { get; set; }
}
public class TaskBehavior
{
public TaskBehavior(bool secure)
{
NameVisible = true;
DescriptionVisible = secure;
}
public bool NameVisible { get; private set; }
public bool DescriptionVisible { get; private set; }
}
我需要将属性从 TaskDto 映射到 Task,但只有那些由 TaskBehavior 决定的属性。目的是只使用一个参数化规则集来指导可见性和条件映射:
void SaveData(TaskDto taskDto)
{
var behavior = new TaskBehavior(false);
var entity = Mapper.Map<Task>(taskDto); // TODO: only map properties based on "behavior" definition
}
结果应该是在这种情况下,只有 Name 属性从 taskDto 映射到实体(根据行为实例)。
【问题讨论】:
标签: c# mapping automapper