ASP.NET MVCおよびEntity Frameworkを初めて使用しています。私はコード・ファースト・アプローチを使用してカー・ディーラー・プロジェクトを作成しています。フィエスタ、パンダ、318のようなモデルを格納するため、CarModel
...
ASP.NET MVC 5 EFコード最初に3つの関連テーブルからデータをロード
車、フォード、フィアット、BMWのようなブランドを格納するため、
CarBrand車のデータを格納するため..:私は3つのテーブル(クラス)を持っています
CarクラスにはFKからCarModelクラスがあります。 CarModelクラスには、FK to CarBrandがあります。私はすべての3つのテーブルからデータをロードする
public class Car
{
public int Id { get; set; }
public string Description{ get; set; }
public decimal Price{ get; set; }
public CarModel CarModel { get; set; }
public int CarModelId { get; set; }
..... (more properties)
}
public class CarBrand
{
public int CarBrandId { get; set; }
public string Description{ get; set; }
}
public class CarModel
{
public int CarModelId { get; set; }
public string Description{ get; set; }
public int CarBrandId { get; set; }
public CarBrand CarBrand { get; set; }
}
:ここ
は私のクラスです。私はコントローラの次のコードで2つのテーブルからデータを読み込むことができます:var cars = _context.Cars.Include(c => c.CarModel).ToList();
CarBrandからのデータもロードするには? ナビゲーションプロパティでクラスを正しくセットアップしましたか?
データをロードすると、ViewModelを格納して厳密な型指定されたビューに送信する必要があると思います。
瞬間に私のViewModelには、次のとおりです。
public class CarsModelsViewModel
{
public CarModel CarModel { get; set; }
public CarBrand CarBrand { get; set; }
public List<Car> Cars { get; set; }
}
返信クリスのおかげで、データの読み込み作品:あなたは、単にような何かを行うことができ
:他の言葉では、以前のに対し、あなたのような何かをする必要があると思います!今では、Carクラスに外部キーを追加することについてのあなたの提案を実装しています。更新されたクラスを使用して新しい移行を作成すると、次のエラーが発生します。FOREIGN KEY制約 'FK_dbo.Cars_dboの紹介。CarModels_CarModelId 'テーブルの' Cars 'は、サイクルまたは複数のカスケードパスを引き起こす可能性があります。 NO DELETE NO ACTIONまたはUP UP NO NO ACTIONを指定するか、他のFOREIGN KEY制約を変更してください。 –