Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/291.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/linq/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 实体框架实体到json_C#_Linq_Entity Framework_Asp.net Mvc 4 - Fatal编程技术网

C# 实体框架实体到json

C# 实体框架实体到json,c#,linq,entity-framework,asp.net-mvc-4,C#,Linq,Entity Framework,Asp.net Mvc 4,我有一个包含两个表的数据库客户和订单。订单中指定了一个名为Customer\u Id的外键,该外键引用Customers中的主键Id 我使用实体框架进行映射 我希望使用JavaScriptSerializer输出json格式,如下所示: [{ "Id": 1, "Name": "Liam", "Orders": [ { "Id" : 1, "Date": "1232144213" }, { "Id

我有一个包含两个表的数据库客户和订单。订单中指定了一个名为Customer\u Id的外键,该外键引用Customers中的主键Id

我使用实体框架进行映射

我希望使用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参考”有问题。

使用,它直接支持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);
    }
内部类实体
{
公共字符串Id{get;set;}
公共字符串名称{get;set;}
公共IEnumerable命令{get;set;}
内部类顺序
{
公共字符串Id{get;set;}
公共日期时间日期{get;set;}
}
}
静态void Main(字符串[]参数)
{
var客户=新列表
{
新实体
{
Id=“test1”,
Name=“test2”,
Orders=new[]{new Entity.Order
{
Id=“testprop”,
Date=DateTime.UtcNow
}}
}
};
var json=JObject.FromObject(新的{Customers=Customers});
Console.WriteLine(json);
}

.NET中也内置了类似的JSON支持,但是这个NuGet包更可取。

或者使用JSON.NET,我认为它在潜在的循环引用方面更聪明一些。