标签: automapper-3

Automapper 3.0 - 此平台IMapperRegistry不支持此类型

我更新了我的项目以使用Automapper 3.0.0,现在我的TFS构建没有成功.错误如下:

" ... System.PlatformNotSupportedException:System.PlatformNotSupportedException:此平台上的IMapperRegistry不支持此类型. "

有没有人可以帮我解决这个问题.与此同时,我将恢复到以前的版本,因为那个似乎工作正常.

automapper notsupportedexception automapper-3

38
推荐指数
2
解决办法
7895
查看次数

如何在类库项目中配置Auto mapper?

我是第一次使用自动映射.

我正在研究c#应用程序,我想使用自动映射器.

(我只是想知道如何使用它,所以我没有asp.net应用程序既没有MVC应用程序.)

我有三个类库项目.

在此输入图像描述

我想在服务项目中编写转移过程.

所以我想知道如何以及在哪里配置自动映射器?

c# automapper automapper-2 automapper-3

30
推荐指数
3
解决办法
2万
查看次数

Automapper:将参数传递给Map方法

我在项目中使用Automapper,我需要动态定值目标对象的字段.

在我的配置中,我有类似的东西:

cfg.CreateMap<Message, MessageDto>()
    // ...
    .ForMember(dest => dest.Timestamp, opt => opt.MapFrom(src => src.SentTime.AddMinutes(someValue)))
    //...
    ;
Run Code Online (Sandbox Code Playgroud)

someValue配置中的代码是,我需要在运行时传递给映射器并且不是所述源对象的一个字段的参数.

有没有办法实现这个目标?像这样的东西:

Mapper.Map<MessageDto>(msg, someValue));
Run Code Online (Sandbox Code Playgroud)

.net c# automapper-3

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

AutoMapper.Mapper.CreateMap <TSource,TDestination>()'已过时

我必须上课

class A
{
 public int id {get; set;}
}

class B
{
 public C c {get; set;}
}

class C
{
 public int id {get; set;}
 public string Name {get; set;}
}
Run Code Online (Sandbox Code Playgroud)

我的要求是将类A的id映射到类C的id.现在我所做的是:Mapper.CreateMap().ForMember(des => des.C.Id,src => src.MapFrom(x = > x.id));

它工作正常.

现在看来,Auto mapper已经改变了它们的实现.我收到如下警告:

AutoMapper.Mapper.CreateMap()'已过时:'将在5.0版中删除动态创建地图.使用MapperConfiguration实例并根据需要静态存储,或Mapper.Initialize.使用CreateMapper创建映射器实例.

我需要映射具有不同名称和结构的类的一些属性.对此有任何帮助.

c# asp.net automapper asp.net-mvc-4 automapper-3

15
推荐指数
2
解决办法
4万
查看次数

为什么AutoMapper v3不能正常工作,因为它正在寻找v2.2.1.0?

我刚刚通过nuGet在一个新项目上安装了AutoMapper,但是当我运行代码时,我收到以下错误:

无法加载文件或程序集'AutoMapper,Version = 2.2.1.0,Culture = neutral,PublicKeyToken = be96cd2c38ef1005'或其依赖项之一.定位的程序集的清单定义与程序集引用不匹配.(HRESULT异常:0x80131040)

为什么要寻找Version = 2.2.1.0,我该怎么办呢?还原到那个版本?

.net automapper nuget automapper-3

11
推荐指数
1
解决办法
6097
查看次数

如何在automapper中的列表中展平条件对象

我有一个Item包含使用AutoMapperProduct映射到各自ViewModel对象的列表.

在我的MVC项目中,我有一个Action方法,显示Item一个选中的Product.为此我有一个ViewModel被调用的ItemDetailsViewModel包含扁平Item对象,一个列表ProductViewModel和一个扁平选择Product.

我遇到的困难是最好的展示这个扁平的选择Product.

可以把它想象成eBay,你Item可以选择多种变化,例如颜色.对我来说,有多种变化Products.当用户选择Product我想要返回ItemDetailsie Item,列表Products和所选择的Product.

我想知道最好的方法吗?目前我的方法是将一个映射Item到一个ItemDetailsViewModel,选择所需的ProductViewModel,然后专门将ProductViewModel后面的每个属性映射到ItemDetailsViewModel.此外,由于ItemProduct具有相同命名属性,最后一行映射将产品带回覆盖Item的ID和密码.

有关如何最好地配置映射的任何建议?

我已经省略了我所拥有的映射,因为它主要是直接的一对一映射,除了将选定的映射映射ProductViewModelItemDetailsViewModel.

Mapper.CreateMap<Item, ItemViewModel>()
    .ReverseMap();

Mapper.CreateMap<ProductViewModel, ItemDetailsViewModel>()
    .ForMember(d => d.ProductId, o => o.MapFrom(s => s.Id))
    .ForMember(d => d.ProductCode, …
Run Code Online (Sandbox Code Playgroud)

c# automapper automapper-3

8
推荐指数
1
解决办法
386
查看次数

复杂对象/嵌套映射中的自动映射和映射列表

我有一段时间从旧的映射标准转换为automapper.

这是我的课程

// Models
public class BaseModel
{
    public Int64 Id { get; set; }
    public Guid UniqueId { get; set; }
    public DateTime? CreateDate { get; set; }
    public DateTime? LastUpdate { get; set; }
} 

public class LibraryItemModel : BaseModel
{
    public string Name { get; set; }
    public string Description { get; set; }
    public string URL { get; set; }
    public bool IsActive { get; set; }
    public List<LibraryCategoryModel> Categories { get; set; }
}   

public …
Run Code Online (Sandbox Code Playgroud)

c# automapper-3

8
推荐指数
1
解决办法
2万
查看次数

使用ForSourceMember时,AutoMapper的Ignore()无法正常工作?

我试图忽略源类型的属性.我已经定义了这样的映射:

var map = AutoMapper.Mapper.CreateMap<Article, IArticle>();
map.ForSourceMember(s => s.DateCreated, opt => opt.Ignore());
map.ForSourceMember(s => s.DateUpdated, opt => opt.Ignore());
Run Code Online (Sandbox Code Playgroud)

当我调用Map功能时,

AutoMapper.Mapper.Map(article, articlePoco);
Run Code Online (Sandbox Code Playgroud)

无论如何,目的地的属性都会更新.我正在使用从NuGet下载的最新稳定版本.

任何想法为什么这不起作用?

我发现了类似的问题,但没有答案.[问题]:AutoMapper的Ignore()不起作用?

c# mapping automapper automapper-3

7
推荐指数
2
解决办法
2357
查看次数

是否可以告诉自动映射器在运行时忽略映射?

我正在使用 Entity Framework 6 和 Automapper 将实体映射到 dtos。

我有这个型号

public class PersonDto
{
    public int Id { get; set; }
    public string Name { get; set; }
    public AddressDto Address { get; set; }
}

public class AddressDto
{
    public int Id { get; set; }
    public string Street { get; set; }
    public string City { get; set; }
}
Run Code Online (Sandbox Code Playgroud)

我使用 automapper Queryable Extension从实体映射 dto。

var personDto = dbContext.People.Project().To<PersonDto>();
Run Code Online (Sandbox Code Playgroud)

上述方法的问题在于,它会使 EF 始终加载地址实体。我希望仅当我使用 include(x => x.Address) 明确告诉他们时才加载地址。如果我在自动映射器映射中指定ignore(),则不会加载地址。是否可以告诉自动映射器在运行时忽略地址属性?我正在使用的自动映射器可查询扩展不支持“条件或映射后”等所有功能。有什么解决方法吗?

c# automapper automapper-3

7
推荐指数
1
解决办法
2682
查看次数

如何在构造函数中使用AutoMapper映射到"this"

我有一个源类型,它具有属性和目标类型,具有完全相同的属性.

为AutoMapper配置一个简单的映射后,如:

Mapper.CreateMap<MySourceType, MyDestinationType>();
Run Code Online (Sandbox Code Playgroud)

我想有一个MyDestinationType的构造函数,它有一个MySourceType参数,然后自动初始化创建类型的属性,源代码如下:

public MyDestinationType(MySourceType source)
{
    // Now here I am do not know what to write.
}
Run Code Online (Sandbox Code Playgroud)

我找到的唯一解决方法是为其创建一个静态工厂方法

public static MyDestinationType Create(MySourceType source)
{
     return Mapper.Map<MyDestinationType>(source);
}
Run Code Online (Sandbox Code Playgroud)

有没有办法不让这种静态的丑陋?

c# automapper automapper-2 automapper-3

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