我正在使用Azure移动服务并且运行良好,除了我在AutoMapper和DTO与其他DTO内部有问题。基本上它们在输出中被忽略。
我的数据类:
public class FoodSupplyProvider
{
[DatabaseGenerated(DatabaseGeneratedOption.Identity)]
[Index(IsClustered = true)]
[Key]
public int FoodSupplyProviderId { get; set; }
public string Name { get; set; }
public virtual Branche Branche { get; set; }
}
public class Branche
{
[DatabaseGenerated(DatabaseGeneratedOption.Identity)]
[Index(IsClustered = true)]
[Key]
public int BrancheId { get; set; }
public string BrancheName { get; set; }
}
我的DTO课程
public class BrancheDTO : EntityData
{
public string BrancheName { get; set; }
}
public class FoodSupplyProviderDTO : EntityData
{
public string Name { get; set; }
public BrancheDTO Branche { get; set; }
}
我已经使用Mapper注册了映射:
cfg.CreateMap<Branche, BrancheDTO>();
cfg.CreateMap<FoodSupplyProvider, FoodSupplyProviderDTO>();
输出:
当我尝试输出FoodSupplyProviderDTO时,它如下:
[{
"id":"2b3fdde5-ba55-4e7f-ae74-5e23abaa7b64",
"name":"FoodSupplyProvider Name 1"
}]
我希望它是:
[{
"id":"2b3fdde5-ba55-4e7f-ae74-5e23abaa7b64",
"name":"FoodSupplyProvider Name 1"
"branche":"The BrancheDTO goes here...."
}]
请注意,预期的输出也是文档在我的API上所说的。
我已经检查过该值不为null,我甚至尝试将Branche的名称映射到FoodSupplyProviderDTO的名称,并且完全正常,除了Branche仍然不在输出中。
编辑:
正如@YacoubMassad所说,这可能是制图或者僵化失败。我已经尝试输出映射,它按预期工作。然后我尝试在代码中将json序列化并输出结果。那个是上面显示的预期结果。
问题在于WebApi为我串行化了对象。无论如何我可以调试这个吗?