我想使用linq创建一些预定义的json响应 . 我的桌子设计就像
Table1: [Building]([ID] [uniqueidentifier] NOT NULL,
[BuildingCode] [varchar](50) NULL,
[Name] [varchar](max) NULL,
[RoleID] [uniqueidentifier] NOT NULL, )
第二表儿童表设计就像
Table2: [Role](
[RoleID] [uniqueidentifier] NOT NULL,
[Name] [varchar](max) NULL,
现在,我希望响应来自:
BuildingCode1
{
RoleId:16C6BEA4-421A-4718-8B85-090FC2FD8BCF
Name:Role Name 1
},
BuildingCode2
{
RoleId:2HJ44A4-621A-A718-8B85-P90FC2FD8BCF
Name:Role Name 2
},
BuildingCode3
{
RoleId:KJL34J8-621A-A718-8B85-3FH39DKF48
Name:Role Name 3
}
对于表1中的每个Building代码,从表2(角色)获取相关的Roleid详细信息 . 请帮助我如何得到这种回应 . 提前致谢
为此,我创建了2个类
public class BCode_Role
{
public RoleTable[] BuildingCode { get; set; }
public byte Status { get; set; }
}
public class RoleTable
{
public Guid RoleID { get; set; }
public string Name { get; set; }
}
返回json的方法是
public Bcode_Role BuldingDetail()
{
var result = new BuildingCode_Role();
var dbBuildingCods = _context.Building.Select(x => x.Code);
var dbRoles = _context.Role;
var apiModels = dbRoles.Select(x => new RoleTable {RoleID= x.ID, Name = x.Name }).ToArray();
result.BuildingCode = apiModels;
return result;
}
形成这个我得到这个Json输出
{
"buildingCode": [
{
"roleID": "0f752579-57cc-4266-a4b4-4759af97525e",
"name": "Role 2"
},
{
"roleID": "1914a479-cb75-48b9-b5c3-6792acfba7b3",
"name": "Role 1"
},
{
"roleID": "3bc21132-079d-4ab9-b9f5-fe2428a281f1",
"name": "Role 3"
}
],
"status": 0
}
但实际上我想要
{
"buildingCode1": {
"roleID": "0f752579-57cc-4266-a4b4-4759af97525e",
"name": "Role 2"
},
"buildingCode"2: {
"roleID": "1914a479-cb75-48b9-b5c3-6792acfba7b3",
"name": "Role 1"
},
"buildingCode"3: {
"roleID": "3bc21132-079d-4ab9-b9f5-fe2428a281f1",
"name": "Role 3"
},
}