Entity framework 个实体到 json

Entity framework entities to json

我有一个包含两个表的数据库。 客户订单。在订单中指定了一个名为 Customer_Id 的外键引用客户中的主键 Id

我使用 entity framework 进行映射。

我想要 JavaScriptSerializer 以便输出 json 格式如下:

[{ 
    "Id": 1,
    "Name": "Liam",
    "Orders": [
                  { "Id" : 1, "Date": "1232144213" }, 
                  { "Id" : 2, "Date": "1232144213" } 
              ]
},
{ 
    "Id": 2,
    "Name": "Martin",
    "Orders": [
                  { "Id" : 3, "Date": "1232144213" }, 
                  { "Id" : 4, "Date": "1232144213" },
                  { "Id" : 5, "Date": "1232144213" } 
              ]
}]

有没有简单的方法可以做到这一点?我花了一些时间弄清楚如何去做,但我似乎遇到了 "cirkular reference"..

的问题

使用 Newtonsoft.Json,它直接支持 LINQ 查询:

    internal class Entity
    {
        public string Id { get; set; }
        public string Name { get; set; }
        public IEnumerable<Order> Orders { get; set; }

        internal class Order
        {
            public string Id { get; set; }
            public DateTime Date { get; set; }
        }
    }

    static void Main(string[] args)
    {
        var customers = new List<Entity>
        {
            new Entity
            {
                Id = "test1",
                Name = "test2",
                Orders = new[] {new Entity.Order
                                {
                                    Id = "testprop", 
                                    Date = DateTime.UtcNow
                                }}
            }
        };
        var json = JObject.FromObject(new {Customers = customers});
        Console.WriteLine(json);
    }

.NET 中也内置了 JSON 类似的支持,但最好使用 NuGet 包。