繁体   English   中英

WebApi C#Rest Web服务无法传递对象列表

[英]WebApi c# rest web service can't pass list of object

我正在构建一个简单的Rest Full Web服务,以将数据存储到数据库中。

这是我的代码:

[Route("InsertActivities")]
[HttpPost]
public HttpResponseMessage InsertActivities(ActivityExecutionDTO u)
{
    try
    {
        if (u != null)
        {
            //TO DO
        }

    }
    catch (Exception e)
    {

    }
}

这是ActivityExecutionDTO类:

namespace WebService.Models
{
    [DataContract(Name = "ActivityExecutionDTO")]
    public class ActivityExecutionDTO
    {
        [DataMember(Name = "Username", Order = 1)]
        public string UserName { get; set; }
        [DataMember(Name = "Password", Order = 2)]
        public string Password { get; set; }
        [DataMember(Name = "IdClinicalDocument", Order = 3)]
        public int IdClinicalDocument { get; set; }
        [DataMember(Name = "ActivityDetails", Order = 4)]
        public IQueryable<ActivityExecutionDetailDTO> ActivityDetails { get; set; }
    }
}

ActivityExecutionDetailDTO类:

namespace WebService.Models
{
    [DataContract]
    public class ActivityExecutionDetailDTO
    {
        [DataMember(Name = "Id")]
        public int ID { get; set; }
        [DataMember(Name = "IdClinicalDocument"), IgnoreDataMember]
        public int IdClinicalDocument { get; set; }
        [DataMember(Name ="IdActivity")]
        public int IdActivity { get; set; }
        [DataMember(Name = "DateExecution"), IgnoreDataMember]
        public DateTime? DateExecution { get; set; }
        [DataMember(Name = "Duration")]
        public Int32? Duration { get; set; }
        [DataMember(Name = "CalBurned")]
        public Int32? CalBurned { get; set; }
        [DataMember(Name = "Steps")]
        public Int32? Steps { get; set; }
    }
}

这是我通过PostMan客户端传递的JSON:

{
    "Username" : "t.g",
    "Password" : "t",
    "IdClinicalDocument" : 63,
    "ActivityDetails" :
    [
        {
            "Id" : 1,
            "IdClinicalDocument" : 63,
            "IdActivity" : 1,
            "DateExecution" : null,
            "Duration" :  150,
            "CalBurned" : 9600,
            "Steps" :  150
        }
    ]
}

因此,如果我尝试检查我的代码,则此代码:

u.ActivityDetails

每次都是null。

活动列表为空。 错误在哪里?

IQueryable<ActivityExecutionDetailDTO>更改为ICollection<ActivityExecutionDetailDTO>

IQueryable仅存储查询定义,其中不能包含任何数据,而是ICollection。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM