相关疑难解决方法(0)

AutoMapper.Mapper不包含CreateMap的定义

这可能是一个基本问题,但我想知道我没有得到AutoMapper.Mapper.CreateMap方法.

在此输入图像描述

我使用错误的AutoMapper参考/包吗?谢谢

asp.net-mvc automapper asp.net-web-api

78
推荐指数
3
解决办法
5万
查看次数

如何将2个泛型类型传递给扩展方法

我创建了以下扩展方法

public static T Map<TEntity,T>(this TEntity entity) where TEntity : IEntity
{
    return Mapper.Map<TEntity, T>(entity);        
}
Run Code Online (Sandbox Code Playgroud)

这允许以下内容

Db.ExchangeSets.FirstOrDefault().Map<ExchangeSet, ExchangeSetSimpleViewModel>()
Run Code Online (Sandbox Code Playgroud)

但是我想知道无论如何我可以修改扩展方法,所以我可以调用如下的短路版本

Db.ExchangeSets.FirstOrDefault().Map<ExchangeSetSimpleViewModel>()
Run Code Online (Sandbox Code Playgroud)

请注意 :

是否应该像这样使用automapper不在问题的范围内,它更像是一个事实发现任务


更新

对于那些在家里玩的人,在scotts评论的帮助下,我设法找到一个额外的解决上述功能的通用扩展方法为automapper

public static T Map<T>(this IEntity entity) 
{
    return (T)Mapper.Map(entity, entity.GetType(), typeof(T));  
}
Run Code Online (Sandbox Code Playgroud)

但是除了AutoMapper之外,这不是实际问题的答案,而是相应地标记优点

c# generics extension-methods

6
推荐指数
1
解决办法
1984
查看次数

AutoMapper映射与通用扩展方法

我想用通用扩展方法映射我的对象.

public class Customer    
{    
    public string FirstName { get; set; }    
    public string LastName { get; set; }    
    public string Email { get; set; }    
    public Address HomeAddress { get; set; }    
    public string GetFullName()    
    {  
        return string.Format(“{0} {1}”, FirstName, LastName);
    }    
}
Run Code Online (Sandbox Code Playgroud)

这是viewmodel

public class CustomerListViewModel    
{    
    public string FullName { get; set; }
    public string Email { get; set; }    
    public string HomeAddressCountry { get; set; }    
}
Run Code Online (Sandbox Code Playgroud)

所以我正在创建地图, Mapper.CreateMap<Customer, CustomerListViewModel>();

我想创建一个扩展方法

public static class MapperHelper
{ …
Run Code Online (Sandbox Code Playgroud)

c# generics automapper

4
推荐指数
1
解决办法
4743
查看次数