C# 实体框架实体到json
我有一个包含两个表的数据库客户和订单。订单中指定了一个名为Customer\u Id的外键,该外键引用Customers中的主键Id 我使用实体框架进行映射 我希望使用JavaScriptSerializer输出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
[{
"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,我认为它在潜在的循环引用方面更聪明一些。