c# - 使用 AutoMapper 创建通用对象的新实例

标签 c# generics automapper

我正在尝试模拟在存储库中保存实体的行为(使用通用 T 参数)。对于 Save() 方法,我需要存储给定实体的新实例而不是实际实例。

我考虑过使用 AutoMapper 来实现此目的:

    public void Save(T entity)
    {
        var newEntity = Mapper.Map<T, T>(entity);
        this.AddOrUpdate(newEntity);
    }

问题是 newEntity 实际上与实体是同一个实例,并且我对实体的属性所做的任何更改都会影响存储的 newEntity。

感谢您的帮助。

最佳答案

我认为应该是这样的:

public void Save(T entity)
{
  Mapper.CreateMap<T, T>();
  var newEntity = Mapper.Map<T, T>(entity);
}

关于c# - 使用 AutoMapper 创建通用对象的新实例,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29557274/

相关文章:

ios - 如何将符合具有关联类型的协议(protocol)的不同类型添加到集合中?

java - 在类本身中初始化泛型类型字段

c# - AutoMapper 展平嵌套集合

linq-to-sql - AutoMapper 是否支持 Linq?

c# - 批量获取函数结果

c# - 如何将此递归代码转换为 Linq

c# - 围绕 SqlTransaction 回滚的异常处理

c# - XmlSerializer 在使用泛型类型约束时抛出 InvalidOperationException

c# - 所有记录必须存在才能返回记录的 SQL 查询

c# - AutoMapper - 强类型数据集