0

这与我昨天发表的一篇文章有​​关,但未能解决:ASP.Net Web API 在 VS 中正确显示但给出 HTTP500

我认为我需要简化我正在尝试做的事情,并从那里开始工作。

谁能告诉我一个使用 asp.net Web API(我正在使用 VS 2012 Express RC)从父/子模型返回 JSON 的示例?

例如:(伪Json):

Parent: Mark
..Child: Tom
..Child: Adam
..Child: Becki

Parent: Terry
..Child: Sophie
..Child: robert

我可以让它从一个表中返回数据,但不能从链接表中返回数据。

谢谢你的帮助,

标记

4

2 回答 2

1

有两种方法可以解决这个问题。

  1. 创建一个新的模板类,遍历使用 EF 获取的列表并将值分配给模板类中定义的属性。如果有的话,这将为您提供一个到多个表的准确结果。最后将列表返回给 json 调用。

  2. 从 EF 获取列表时,创建一个新的匿名类型并选择所需的列。为此,您的 webmethod 将返回类型为 IEnumerable

干杯!

于 2012-06-06T11:15:31.657 回答
0

查看您的原始帖子后,我的猜测是您的对象中有循环引用。这篇文章提到了使用 Json.Net,这将使您能够更好地控制返回给客户端的内容。

tblCustomerBooking您的另一个选择是从对象中删除外键引用tblRental(见下文)。

这可能允许您返回 JSON 对象并测试循环引用是否存在问题。

[ForeignKey("customer_id")]
public virtual tblCustomerBooking tblCustomerBooking { get; set; }

如果您打算返回域(即实体对象),我建议您使用 Json.NET,因为这将避免所有循环引用,并允许您保持双向对象关系。

我个人的偏好是使用 DTO 并将您的域对象映射到这些 DTO,允许您更好地控制客户端看到的内容(因为在对象名称中看到 'tbl' 前缀不是好的做法)

于 2012-06-06T15:08:51.720 回答