1

ビューモデルのほとんどの値は正常に返されていますが、モデル クラスを更新した後、これらの値のうちの 2 つ (データベース内の他のテーブルに関連付けられている) は、割り当て方法を変更していないにもかかわらず、null 値を返します。 . 問題は次のステートメントにあることに気付きました。

Vehicles = utc.Vehicles.OrderByDescending(v => v.DateCreated).Take(10).ToList()

車両のモデルとメーカーは含まれません。このステートメントを次のように変更する方法を探しています。

Vehicles = utc.Vehicles.Include(v => v.Model).Include(v => v.Model.Manufacturer).OrderByDescending(v => v.DateCreated).Take(10).ToList()

しかし、それはエラーをスローし、コンパイルされません。

誰でも手伝ってもらえますか?

編集これ が私のコードです。コントローラーの場合:

public ActionResult Index()
    {
                        var home = new HomeViewModel
        {
            latestVehiclesViewModel = new LatestVehiclesViewModel 
            {
                Vehicles = utc.Vehicles.Include("Model").Include("Manufacturer")
        .OrderByDescending(v => v.DateCreated)
        .Take(10)
        .ToList()
            },

            searchViewModel = new SearchViewModel
            {
                Manufacturers = utc.Manufacturers.ToList(),
                //Models = utc.Models.ToList(),
            }
        };
        return View(home);
    }

モデル モデルの場合:

public class Model
{
    public int ModelId { get; set; }
    public int ManufacturerId { get; set; }
    public string Name { get; set; }
    public List<Vehicle> Vehicles { get; set; }
    public Manufacturer Manufacturer { get; set; }
}
4

2 に答える 2

2

私の EF5 では、Expression をパラメーターとして DbSet().Include に渡すことができません。

むしろこれを試してください:

Vehicles = utc.Vehicles.Include("Model").Include("Manufacturer")
            .OrderByDescending(v => v.DateCreated)
            .Take(10)
            .ToList()
于 2013-06-02T19:46:55.980 に答える
0

私はそれを自分で修正しました...新しいエラーは私のせいでした.Include("Model.Manufacturer")である必要がありました.Quinton Bernhardtの答えを受け入れました。 .. ありがとうございました。

于 2013-06-04T00:42:21.280 に答える