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 が null であることに注意してください。ただし、コードをステップ実行すると、オブジェクトは正しい値を持ちます。

オブジェクトの 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 に答える