【问题标题】:valueinjecter not copying nested properties valuesvalueinjecter 不复制嵌套属性值
【发布时间】:2017-08-03 15:19:38
【问题描述】:

我有以下课程:

public class Ad
{
    public int Id {get;set;}

    public string Title { get; set; }

    public string UrlTitle { get; set; }

    public LookUp Color {get;set}

    public LookUp Condition {get;set}

    public int InsertUserId {get; set;}

    public DateTime InsertDate {get; set;}
}

LookUp类如下:

public class LookUp
{
     public int Id {get;set;}

     public string Name { get; set; } 

     public int InsertUserId {get; set;}

     public DateTime InsertDate {get; set;}
}

然后我有这些类的 ViewModel,例如:

public class AdModel
{
    public int Id {get;set;}

    public string Title { get; set; }

    public string UrlTitle { get; set; }

    public LookUpModel Color {get;set}

    public LookUpModel Condition {get;set}
}

public class LookUpModel
{
     public int Id {get;set;}

     public string Name { get; set; } 
}

现在在我的控制器中,我正在做这样的事情:

public IHttpActionResult Get(int adId)
{
    var ad = AdService.Get(adId);//Getting ad from DB

    AdModel adModel = new AdModel();
    adModel.InjectFrom(ad);
    return Ok(adModel);
}

我的问题是ValueInjecter 只是复制了广告的第一级属性,例如Id, Title, UrlTitle,但它没有将LookUp 复制到LookUpModel 属性中。

【问题讨论】:

  • 好像 AdModel 类没有“InjectFrom”方法...
  • 我用的是valueinjecter,InjectFrom方法是ValueInjecter提供的。
  • 使用Mapper.Map 而不是.InjectFrom 在此处阅读:github.com/omuleanu/ValueInjecter;在映射之前,您需要为每对类型调用 Mapper.AddMap(并在 AddMap 中调用 Mapper.Map)
  • 甚至 Mapper.Map 都不起作用,但我在这里找到了一种解决方案 qubanshi.cc/questions/950728/…,它起作用了。谢谢

标签: c# asp.net .net mapping valueinjecter


【解决方案1】:

@Usman Khalid:您可以使用 newtonsoft JSON 库来序列化和反序列化对象。 然后在反序列化对象上使用 injectfrom 方法,您的问题可能会解决。

example: Admodel model = new Admodel();
 var s = JsonConvert.SerializeObject(model);
 UserModel user = JsonConvert.DeserializeObject<UserModel>(s);
user.InjectFrom(user);

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-09
    • 2020-11-16
    • 2021-03-04
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多