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 包。
我有一个包含两个表的数据库。 客户 和订单。在订单中指定了一个名为 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 包。