首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >错误系统. automapper‘1 automapper

错误系统. automapper‘1 automapper
EN

Stack Overflow用户
提问于 2018-02-28 03:26:13
回答 1查看 1.6K关注 0票数 1

我有实体类pinjaman_DataEntities,它有4个属性。

代码语言:javascript
运行
复制
public string appl_no { get; set; }

public string reff_number { get; set; }

public string cust_name { get; set; }

public string merchant_id { get; set; }

而且我有一个数据库上下文gt_applikasi_pinjaman,它比pinjaman_DataEntities具有更多的属性,但是上面还有4个属性的相同名称。

我想从pinjaman_DataEntities映射到gt_appllikasi_pinjaman

以下代码如下:

代码语言:javascript
运行
复制
public bool updateFilter(pinjaman_DataEntities filterPinjaman)
{    
    bool valid = true;    
    filterPinjaman = (pinjaman_DataEntities)ConvertDataEmpetyStringToNull(filterPinjaman);    
    gt_applikasi_pinjaman pinjaman = dbContext.gt_applikasi_pinjaman.Find(filterPinjaman.appl_no); 

    Mapper.CreateMap<pinjaman_DataEntities, gt_applikasi_pinjaman>()
         .ForAllMembers(opt => opt.Condition(srs => !srs.IsSourceValueNull));

    Mapper.Map(filterPinjaman, pinjaman);    
    dbContext.Entry(pinjaman).State = EntityState.Modified;    
    dbContext.SaveChanges();    
    return valid;    
}

运行代码后,当代码打开时出现错误。

代码语言:javascript
运行
复制
Mapper.Map(filterPinjaman, pinjaman);

错误信息是:

“System.Exception”类型的异常发生在WebApplicationServiceAPIA.dll中,但未在用户代码中处理 其他信息: 制图类型: pinjaman_DataEntities -> Nullable1 ServiceAPIA.DataEntities.pinjaman\_DataEntities -> System.Nullable1[System.DateTime,mscorlib,Version=4.0.0.0,Culture=neutral,PublicKeyToken=b77a5c561934e089] 目标路径: gt_applikasi_pinjaman.appl_date.appl_date 来源值: ServiceAPIA.DataEntities.pinjaman_DataEntities

这是什么意思,以及如何修复它?非常感谢。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-02-28 08:21:57

我正在使用自动映射程序6.2.2.0最新版本。在这个版本中跳过需要使用的null -

.ForAllMembers(opt => opt.Condition(src => src != null))

如果对您有效,请检查下面的代码。小提琴

代码语言:javascript
运行
复制
using System;
using AutoMapper;

public class Program
{
    public static void Main(string[] args)
    {
        var sVm = new SourceVM
        {
            cust_name = "Gaurav",
            appl_no = "HR99TEMP5253"
        };

        var r = MyConvert(sVm);
        Console.WriteLine(r.cust_name);
        Console.WriteLine(r.appl_no);
        Console.WriteLine(r.appl_date);


        r = MyConvert(null);
        Console.WriteLine(r.cust_name);
        Console.WriteLine(r.appl_no);
        Console.WriteLine(r.appl_date);

    }


    private static DestinationVM GetDest()
    {
        return new DestinationVM
        {
            cust_name = "Deepak",
            appl_no = "HR26DK6149",
            appl_date = DateTime.Now
        };
    }
    public static DestinationVM MyConvert(SourceVM vm)
    {            

        DestinationVM destVm = GetDest();

        var config = new MapperConfiguration(cfg =>
        {
            cfg.CreateMap<SourceVM, DestinationVM>()
            .ForAllMembers(opt => opt.Condition(src => src != null));
        });

        config.CreateMapper().Map(vm, destVm);

        return destVm;
    }
}


public class SourceVM
{
    public string appl_no { get; set; }

    public string reff_number { get; set; }

    public string cust_name { get; set; }

    public string merchant_id { get; set; }
}

public class DestinationVM
{
    public string appl_no { get; set; }

    public string reff_number { get; set; }

    public string cust_name { get; set; }

    public string merchant_id { get; set; }

    public Nullable<System.DateTime> appl_date { get; set; }
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/49021492

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档