使用https://github.com/scott-mcdonald/JsonApiFramework框架
我从UI中发送以下修补程序:
{"data":{"id":"4221fe2f-ca7b-425d-b45a-a09f4936a22b","attributes":{"contact-trade-name":"asdad","contact-name":"aasd","contact-phone":"asdad","contact-email":"asdad@adasd.asd","created-date":"2016-12-19T14:07:59.833","status":"AwaitingBillData"},"relationships":{"share-user":{"data":{"type":"users","id":"5078b2ee-2348-44f5-95a0-3c14c2ad2b1d"}}},"type":"jobs"}}
在我的服务器上,我执行以下操作:
using (var documentContext = new DocumentContext(HttpContext.Current.Request.Url, document)) { var job = documentContext.GetResource<Job>(); var relationships = documentContext.GetResourceRelationships(job); var shareUserRel = relationships["share-user"]; var shareUser = documentContext.GetRelatedResource<Data.ServiceModel.User>(shareUserRel); }
然而,shareUser总是null
当我检查shareUserRel时,它有以下几点:
{ResourceIdentifier [type=users id=5078b2ee-2348-44f5-95a0-3c14c2ad2b1d]}
如果有帮助的话。
有什么明显的证据表明我做错了什么吗?
发布于 2017-10-11 02:03:14
要将json:api文档格式化为可读性,如下所示:
{
"data": {
"type": "jobs"
"id": "4221fe2f-ca7b-425d-b45a-a09f4936a22b",
"attributes": {
"contact-trade-name": "asdad",
"contact-name": "aasd",
"contact-phone": "asdad",
"contact-email": "asdad@adasd.asd",
"created-date": "2016-12-19T14:07:59.833",
"status": "AwaitingBillData"
},
"relationships": {
"share-user": {
"data": {
"type": "users",
"id": "5078b2ee-2348-44f5-95a0-3c14c2ad2b1d"
}
}
}
}
}GetRelatedResource返回null的原因是,您要求文档上下文返回文档中包含的实际用户资源,文档中不存在该资源。
当客户端在补丁中发送这种类型的json:api文档时,您将指示服务器用给定的属性更新作业资源,并将此作业资源与在to-one资源链接中指定的现有用户资源关联起来。
在示例中有了relationship对象之后,更正确的内容如下:
if (shareUserRel.IsResourceLinkageNullOrEmpty())
{
// Clear any linkage between the job resource and any current user
...
}
else
{
var shareUserResourceIdentifier = shareUserRel.GetToOneResourceLinkage();
// Create linkage between the job resource and existing user identified
// by shareUserResourceIdentifier
...
}现在你如何处理“.”取决于您的数据层。
https://stackoverflow.com/questions/41229704
复制相似问题