Gar*_*ill 3 c# asp.net-mvc-4 asp.net-web-api
如果我有一个Customer只有简单属性的类(例如Name,等等),那么我可以创建一个CustomersController派生自ApiController,并使用URL查询我的Customer对象/api/customers.
类似地,如果我有一个Order具有简单属性(Description,Amount)的类,那么我可以创建一个OrdersController并以相同的方式访问它.
但是,如果我然后在我的Customer类中添加一个属性,列出Order与之关联的s Customer:
public class Customer
{
public int Id { get; set; }
public string Name { get; set; }
// ...
public virtual ICollection<Order> Orders { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
...然后,当我尝试查询使用时,/api/customers我得到500服务器错误.我可以在其中放置一个断点,CustomersController并且可以看到它确实调用了正确的方法,并尝试返回一个值.但是,在框架的内容中,它无法将其转换为HTTP响应.
看起来它无法序列化Orders信息和/或将其打包为HTTP响应,但我不确定我需要做些什么来实现这一点.或者仅仅是WebApi的东西不是为了返回复杂的对象而设计的?
更新:我的代码在这里:https://gist.github.com/43ed2f29f8adfb44cef6
更新2:有关我得到的错误的更多信息:
Run Code Online (Sandbox Code Playgroud)Server error The website encountered an error while retrieving http://localhost:1031/api/customers/6.它可能已关闭以进行维护或配置不正确.以下是一些建议:稍后重新加载此网页.HTTP错误500(内部服务器错误):服务器尝试完成请求时遇到意外情况.
Intellitrace日志显示以下内容:http://i.imgur.com/iHxJl.png
[我简直不敢相信Intellitrace窗口不允许我复制文本,因此我必须实际打印屏幕并上传图像.今年是几年?]