0

我一直在使用带有 EF Code First 5 的 MVC 4 Web API。我有这些 POCO:

public class Vehicle
{
    public int Id { get; set; }
    public int VehicleMakeId { get; set; }
    public int Model { get; set; }
    public int Year { get; set; }
    public int FuelType { get; set; }
    public int NoOfSeats { get; set; }   
    public virtual VehicleMake VehicleMake { get; set; }
}    

public class VehicleMake
{
    public int Id { get; set; }
    public string Description { get; set; }
}

还有一个 Web API 控制器调用:'http://localhost:63779/api/'vehicles 和一个看起来像这样的 GET:

public IEnumerable<Vehicle> Get()
{
   return Uow.Vehicles.GetAll().OrderBy(v => v.VehicleMake.Description);
}

我可以将 JSON 结果返回到浏览器:

{
   id: 1,
   vehicleMakeId: 1,
   model: 1,
   year: 2004,
   fuelType: 2,
   noOfSeats: 1,
   vehicleMake: null
}

注意 vehicleMake 为空。但是,在单步执行代码时,对象确实具有正确的值。

是否可以看到对象的 JSON 响应?我猜它甚至是可取的,什么是查找属性?

我意识到这里缺少很多代码,但希望有人能够解释这里发生的事情。如果没有,我可以发布更多信息。

谢谢

4

1 回答 1

1

您的 VehicleMake 是延迟加载的。当您使用调试器查看它时,它会立即加载,因此您需要将其包含在查询中:

public IEnumerable<Vehicle> Get()
{
   return Uow.Vehicles.GetAll().Include(v => v.VehicleMake)
           .OrderBy(v => v.VehicleMake.Description);
} 
于 2012-11-11T10:42:57.600 回答