I am creating an Asp.net MVC application in Which I have Recipe Model
and RecipeCategory
model. I want Recipe model contain foreign key
of RecipeCategory
model. I am new to Entity Framework. I am using code first
approach of Entity framework.
I have recipeCategory
model defined as below:
public class RecipeCategory
{
public int RecipeCategoryID { get; set; }
public string Name { get; set; }
public List<Recipe> Recipe { get; set; }
}
and I have recipe model class like below:
public class Recipe
{
public int ID { get; set; }
public string Title { get; set; }
public string Description { get; set; }
public int RecipeCategoryID { get; set; }
public RecipeCategory RecipeCategory { get; set; }
}
What I want:
While creating new Recipe, I want list of Categories in UI to select RecipeCategories but I am unable to get that.
I want properly foreign key established between both tables. please help me solve this
Your relationships are correct. For more improvement i would suggest plural name for your ICollection means Recipes instead of Recipe and replace List with ICollection.
public class RecipeCategory
{
public int RecipeCategoryID { get; set; }
public string Name { get; set; }
public ICollection<Recipe> Recipes { get; set; }
}
public class Recipe
{
public int ID { get; set; }
public string Title { get; set; }
public string Description { get; set; }
public int RecipeCategoryID { get; set; }
public RecipeCategory RecipeCategory { get; set; }
}
Now come to main point as you have said you are unable to get RecipeCategories so can you please post your code for this which you are using?
It should be like this: 1. You must have created a context class inherited from DbContext and in that you must have defined your both entities in DbSets.
public class YourContext: DbContext
{
public YourContext():
base("yourConnectionString")
{
}
public DbSet<Recipe> Recipes { get; set; }
public DbSet<RecipeCategory> RecipeCategories { get; set; }
}
after that you can return your categories like this:
public IEnumerable<RecipeCategory> Get()
{
YourContext context = new YourContext();
return context.RecipeCategories;
}