2016-04-26 6 views
3

Ich bin neu, ASP.net und MVC zu verwenden und etwas Hilfe zu benötigen. Ich arbeite zurzeit an einem Projekt, das ein on-line-Rezeptbuch ist, und ich habe verschiedene Tabellen aber die zwei Tabellen, die ich in eine Ansicht kombinieren möchte Rezept und RecipeIngredients, wie unten dargestellt:asp.net: Wie kombiniere ich zwei Modelle miteinander, um ein Parent und alle untergeordneten Entitäten zu erstellen?

Recipe.cs

namespace TheOnlineFoodBook.Models 
    { 
     public class Recipe 
     { 
      [DatabaseGeneratedAttribute(DatabaseGeneratedOption.Identity)] 
      public int RecipeID { get; set; } 
      [Display(Name = "Recipe")] 
      public string RecipeName { get; set; } 
      [Display(Name= "Cuisine")] 
      public int CuisineID { get; set; } 
      public string Directions { get; set; } 
      [Display(Name = "Preperation Time:")] 
      public double PreperationTime { get; set; } 
      [Display(Name = "Cooking Time:")] 
      public double CookingTime { get; set; } 


      public virtual List<RecipeIngredient> RecipeIngredients { get; set; } 

      [ForeignKey("CuisineID")] 
      public virtual Cuisine Cuisine { get; set; } 
     } 
    } 

RecipeIngredient.cs

public class RecipeIngredient 
    { 
     [DatabaseGeneratedAttribute(DatabaseGeneratedOption.Identity)] 
     public int ID { get; set; } 
     public int RecipeID { get; set; } 
     public int IngredientID { get; set; } 
     public double Quantity { get; set; } 
     public int MeasurementID { get; set; } 
     public string Notes { get; set; } 

     public virtual Recipe Recipe { get; set; } 
     public virtual Measurement Measurement { get; set; } 
     public virtual Ingredient Ingredient { get; set; } 
    } 
} 

Ich habe ein wenig über das Kombinieren von Modellen gelesen, um ein viewModel zu erstellen, aber ich bin mir nicht sicher, wie ich das machen würde, und ich möchte auch mehrere RecipeIngredients-Einträge gleichzeitig hinzufügen können, wenn ich ein Rezept erstelle. Zur Zeit habe ich die grundlegenden CRUD-Ansichten, die funktionieren, welches Entitätsframework für mich erstellt wurde.

Antwort

0

Wird dies tun, was Sie brauchen?

public class RecipeViewModel 
{ 
    public Recipe Recipe { get; set; } 
    public List<RecipeIngredients> RecipeIngredientsList { get; set; } 
} 

Sie werden keine Daten Anmerkungen können, wie effektiv nutzen, aber wenn das nicht ein Anliegen ist, werden Sie nun in der Lage sein, mehrere RecipeIngredients zum gleichen Recipe für Ihre Seite anhängen.

+0

hat Ich habe ein Ansichtsmodell wie das erstellt ich bin nur nicht sicher wo ich hingehen soll Dort. –

+1

Sie können Ihr ViewModel wie jede andere Klasse laden und dieses Modell dann an Ihre Ansicht übergeben. 'return View (model);' In Ihrer Ansicht können Sie auf jede Eigenschaft wie jede andere Klasse zugreifen. 'Model.Recipe.RecipeName' und' Model.RecipeIngredientsList [i] .Notes' – DunningKrugerEffect

1

Sie haben schon ein „Rezept“ Objekt in „recipeIngredient“ so mit „recipeIngredient“ als Modell Ihrer Ansicht nach würde Ihnen zu „Rezept“ Eigenschaften zugreifen, einen anderen Ansatz, den Sie nehmen könnte @modelTuple<Recipe,RecipeIngredient> Ihrer Ansicht nach wird mit nach new Tuple<Person, Order>(new Recipe(),new RecipeIngredient()); vorbei wie du ein Modell passierst, aber ich würde den Gebrauch nicht sehen, wenn ich dem späteren folge, da "RezeptIngredient" bereits "Rezept"

Verwandte Themen