如何使用linq将嵌套集合作为数组返回

时间:2019-07-08 08:12:28

标签: c# linq

我需要获取JSON

{
 Name: "xyz",
 Roles: [{"Id":1,"Name":"User"},{{"Id":2,"Name":"Mod"}]
}

我有一个角色类

public class Role
{
 public int Id {get;set;}
 public string Name {get;set;}
}
var roles = db.Role.ToList();

我正在尝试这种方式:

select new { Name: "xyz", Roles = roles}

但这会导致错误

在此上下文中仅支持原始类型或枚举类型

2 个答案:

答案 0 :(得分:2)

使用JSON序列化程序将对象序列化为JSON。 https://www.newtonsoft.com/json

var roles = ...
var jsonString = JsonConvert.SerializeObject(roles);

答案 1 :(得分:0)

我已经尝试过了,并且可以正常工作。

var items = new List<Role>();
            items.Add(new Role() { Id = 1 , Name = "Admin" });
            var username = "test";
            var newOvj = new { username = username, roles = items };
            var stringdata = Newtonsoft.Json.JsonConvert.SerializeObject(newOvj);