所以我使用名为Chat的数据模型创建端点,该模型将接受此JSON表单中的数据并将其存储在数据库中。
[{
"ID": "123456",
"Chat": [{
"ID": "1",
"Message": "User: that's a nice car Dylan: thanks",
"PostedBy": "Dylan",
"PostedOn": "2018-01-23T18:25:43.511Z"
},
{
"ID": "2",
"Message": "User: that's a really nice car Terry: thanks ",
"PostedBy": "Terry",
"PostedOn": "2018-02-23T18:25:43.511Z"
},
{
"ID": "3",
"Message": "User: that's the best car Roger: thanks",
"PostedBy": "Roger",
"PostedOn": "2018-03-23T18:25:43.511Z"
}
]
}]
这就是我目前所拥有的,当我向端点发送数据时,它只存储ID,而不存储数据库中的任何其他内容。如何改变我的模型以接受正在发送的全部数据,我们对任何想法/指导表示赞赏。
public class Chat
{
public string ID { get; set; }
public string message { get; set; }
public string postedBy { get; set; }
public DateTime? postedOn { get; set;}
}
答案 0 :(得分:0)
我可能在这里错了,但在我看来,您正在使用代表单个消息实例(类Chat
)的类来尝试存储整个聊天数据列表。
如果我是对的,它实际存储ID
的唯一原因是它碰巧在数据中的两个不同级别具有相同的名称;一个用于外部列表(整个集合 - 这是存储的内容),每个内部聊天项目一个。
尝试添加此类,然后使用它(或者更确切地说,因为它实际上包含已存在的类Chat
的实例列表):
public class ChatThread
{
public string ID { get; set; }
public IEnumerable<Chat> Chat { get; set; }
}
答案 1 :(得分:0)
存储在您对象上的ID
不是ID
对象中的Chat
,而是聊天对象常见的更高ID
定义。
如果我们忽略了你没有考虑到C#是区分大小写的语言这一事实,你真的很接近。
“更高”层由字符串ID
组成,但也包含Chat
个对象的数组,因此您应创建一个Class
来保存这两个属性的定义。
public class JsonClass
{
public string ID { get; set; }
public Chat[] Chat { get; set; }
}
public class Chat
{
public string ID { get; set; }
public string Message { get; set; }
public string PostedBy { get; set; }
public DateTime PostedOn { get; set; }
}
由于Chat
ID属性存在多个JsonClass
个对象,因此必须将其设置为某种类型的集合。我选择了一个数组,但您可以使用其他Collection
个对象,例如List
。