J'ai une base de données avec les tableaux suivantsMVC3 question héritage
- entreprises (Contient tous les champs communs)
- Business_Hotel (Contient des champs spécifiques à Hôtels)
- Business_Restaraunt (contient des champs spécifiques à Restaraunts)
- Business_Airport (Contient des champs spécifiques aux aéroports)
je modélise ces EF en utilisant dans héritage.
- Entreprises (Base)
- Hôtels (Hérite de Entreprises)
- Restaraunts (Hérite de Entreprises)
- Aéroports (Hérite de Entreprises)
J'ai créé le contrôleur avec le contrôleur assistant de création dans VS2010 en utilisant l'entité de base (entreprises)
Je veux réutiliser le même Créer action pour les trois types.
[HttpPost]
public ActionResult CreateHotel(Business business)
{
if (ModelState.IsValid)
{
db.Businesses.AddObject(business);
db.SaveChanges();
return RedirectToAction("Index");
}
Si je modifie la fonction comme indiqué ci-dessous, il ne crée correctement une entreprise de type Hôtel
public ActionResult CreateHotel(Hotels business)
La question est de savoir comment puis-je faire dynamiquement. Y a-t-il une meilleure manière de faire cela?
Pas toujours, pensez à ce cas. Une action sert de point de contact unique à de nombreux types de clients (silverlight, mvc), maintenant pour les ajouts de fonctionnalités, personne n'est prêt à appeler une nouvelle action, la plupart du temps, la demande est d'utiliser la même action avec plus de paramètres supplémentaires. Dans ce scénario, le modèle de construction s'avère utile, en fait à un coût léger en termes de complexité du code. Mais la séparation des préoccupations est toujours intacte, car la logique du générateur est déplacée du contrôleur. –