我有一个c#Asp.Net Web API服务器 我发帖要求让Json重新开始
我正在与Linq合作并有两张桌子:
首先是一个forumMessage,每条消息都指向具有accountId的特定用户:
public partial class forumMessage
{
public int objectId { get; set; }
public string title { get; set; }
public string body { get; set; }
public int acountId { get; set; }//the user objectId
public virtual user user { get; set; }
}
其次是用户:
public partial class user
{
[System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Usage", "CA2214:DoNotCallOverridableMethodsInConstructors")]
public user()
{
this.fora = new HashSet<forumMessage>();
}
public int objectId { get; set; }
public string username { get; set; }
public string password { get; set; }
[System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Usage", "CA2227:CollectionPropertiesShouldBeReadOnly")]
public virtual ICollection<forumMessage> fora { get; set; }//list of messages
}
所以我需要的是响应一个json数组,如:
[{
"$id": "1",
"objectId": 2,
"title": "Message Title",
"body": "Message body",
"acountId": 1,
"user": {
"$id": "2",
"objectId": 1,
"username": "Shay"
}}]
请注意,响应是没有用户密码或用户消息列表 只是一些特定的用户列 日Thnx
答案 0 :(得分:1)
包含返回所有内容,但您可以使用匿名对象仅返回数据的子集:
from c in ctx.Customers
join o in ctx.Orders on ..
select new { c.ID, c.Name, o.OrderID, o.OrderDate };
粗略的例子,但想法是匿名对象定义子集,并且您可以将该对象编码为JSON。
答案 1 :(得分:0)
您应该将域/业务obejct(forumMessage)转换为DTO
查看this