我有我的C#代码中的问题。我不能产生我JSON很好。
我使用NHibernate连接,然后从我的SQL Server数据。我想产生内部具有列表对象的JSON。需要你的帮助球员。
NHibernate的代码:
var query = (from partners in session.Query<Partners>()
join partnerUsers in session.Query<PartnerUsers>() on partners.PartnerId equals partnerUsers.PartnerId
where partners.PartnerId == partnerId
select new Partnersss
{
PartnerId = partners.PartnerId,
PartnerName = partners.Name,
PartnerUsers = new PartnerUsersss()
{
LoginId = partnerUsers.LoginId
}
}).ToList<object>();
return query;
类:
public class PartnerUsersss
{
public int PartnerUserId { get; set; }
public string LoginId { get; set; }
}
public class Partnersss
{
public int PartnerId { get; set; }
public string PartnerName { get; set; }
public PartnerUsersss PartnerUsers { get; set; }
}
JSON结果:
{
"Data": "",
"data": [{
"PartnerId": 1,
"PartnerName": "ExpressPay",
"PartnerUsers": {
"PartnerUserId": "0",
"LoginId": "[email protected]"
}
}, {
"PartnerId": 1,
"PartnerName": "ExpressPay",
"PartnerUsers": {
"PartnerUserId": "0",
"LoginId": "[email protected]"
}
}],
"ResponseCode": "0",
"ResponseMessage": "Successful"
}
但我希望能够生产这种JSON来代替:
{
"Data": "",
"data": [{
"PartnerId ": 1,
"PartnerName": "ExpressPay ",
"PartnerUsers": [{
"partnerUserId": "0",
"loginId": "[email protected]"
}, {
"partnerUserId": "0",
"loginId": "[email protected]"
}]
}],
"ResponseCode": "0",
"ResponseMessage": "Successful"
}
我尝试使用清单以这种代码
PartnerUsers = new List<PartnerUsersss>
,改变它的类。但是,我得到了一个错误
列表中不包含登录ID的定义
在新的类:
public List<PartnerUsersss> PartnerUsers { get; set; }
您需要删除您查询加入和修改您的查询像下面,
var query = (from partners in session.Query<Partners>()
where partners.PartnerId == partnerId
let partnerUsers = (from pu in session.Query<PartnerUsers>()
where pu.PartnerId == partners.PartnerId
select pu).ToList()
select new Partnersss
{
PartnerId = partners.PartnerId,
PartnerName = partners.Name,
PartnerUsers = partnerUsers
}).ToList();
您需要更改PartnerUsers
属性的类型名单,
public List<PartnerUsersss> PartnerUsers { get; set; }