Je suis nouveau sur ASP.NET MVC et Entity Framework. Je crée un projet de concessionnaire automobile en utilisant l'approche Code First. J'ai 3 tables (classes):
Code EF ASP.NET MVC 5 Premier chargement des données de 3 tables connexes
voiture, pour stocker des données de voiture
CarBrand, pour stocker des marques comme Ford, Fiat, BMW ...
CarModel, pour le stockage de modèles Fiesta, Panda, 318 ..
La classe Car a une classe FK à CarModel. La classe CarModel a un FK pour CarBrand.
voici mes classes:
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; }
}
Je veux charger des données de tous les 3 tables. Je suis en mesure de charger des données à partir de 2 tables avec le code suivant dans le contrôleur:
var cars = _context.Cars.Include(c => c.CarModel).ToList();
Comment charger les données de CarBrand aussi? Ai-je configuré les classes avec les propriétés de navigation correctement?
Une fois que je charge les données, je suppose que j'ai besoin d'un ViewModel pour stocker et envoyer les données à la vue fortement typée, non?
Au moment de mon ViewModel est:
public class CarsModelsViewModel
{
public CarModel CarModel { get; set; }
public CarBrand CarBrand { get; set; }
public List<Car> Cars { get; set; }
}
Merci pour la réponse Chris, les travaux de chargement de données! Maintenant, je suis en train d'implémenter votre suggestion concernant l'ajout d'une clé étrangère à la classe Car. J'obtiens l'erreur suivante lors de la création d'une nouvelle migration avec la classe mise à jour: Présentation de la contrainte FOREIGN KEY 'FK_dbo.Cars_dbo.CarModels_CarModelId 'sur la table' Cars 'peut provoquer des cycles ou plusieurs chemins en cascade. Spécifiez ON DELETE NO ACTION ou ON UPDATE NO ACTION ou modifiez d'autres contraintes FOREIGN KEY. –