gpt4 book ai didi

automapper - 如何将 int 映射到 bool 值

转载 作者:行者123 更新时间:2023-12-03 16:28:15 25 4
gpt4 key购买 nike

我正在使用 AutoMapper 5.2。我目前有一个映射语句,如下所示:

 CreateMap<JeffreysOnline.Data.Customer, JeffreysOnline.Entities.Customer>()
.ForMember(s => s.CustomerWant, t => t.Ignore());

Customer 表和 Customer 实体都有一个名为 BadChecks 的字段。在数据库中,它是一个 int。我最近在我的实体中将类型更改为 bool 值。 AutoMapper 现在给我以下错误:

Unable to create a map expression from Customer.BadChecks (System.Int16) to Customer.BadChecks (System.Boolean) Mapping types: Customer -> Customer JeffreysOnline.Data.Customer -> JeffreysOnline.Entities.Customer Type Map configuration: Customer -> Customer JeffreysOnline.Data.Customer -> JeffreysOnline.Entities.Customer Property: BadChecks

AutoMapper 似乎不知道如何从 int 映射到 boolean。我可以帮助 AutoMapper 解决这个问题吗?

知道在我的 DAL 中,我使用 ProjectTo() 将 IQueryable 传递给尝试访问数据的另一个方法可能会有所帮助,因此正在发生映射(正在生成错误)。我的 DAL 代码如下所示:

return entityList.OrderBy(row => row.LastName).ProjectTo<Entities.Customer>();

最佳答案

Automapper 6.0.2 - 无需任何 ForMember 即可工作... null,0 = false,值 >= 1 映射为 true。

在 Automapper 6.0.2 中 - 其他方式:

    class nnnProfile : Profile
{
CreateMap<src, dst>()
.ForMember(d => d.Decision, opt => opt.ResolveUsing<CustomBoolResolver>());
}

解析器:

public class CustomBoolResolver : IValueResolver<src, dst, bool>
{
public bool Resolve(src source, dst destination, bool destMember,
ResolutionContext context)
{
return source.Decision == 1;
}
}

但这是每个目的地,所以不太灵活。

根据此页面: http://taswar.zeytinsoft.com/automapper-mapping-objects-part-5-of-7-customresolver/

过去,您可以编写一个只有源和目标类型的自定义解析器。

关于automapper - 如何将 int 映射到 bool 值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43520278/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com