I'm working with MVC and have created a form to insert values into my database.
My database structure has the relationships:
- One -> Many
- Many -> Many
For Example: The User table contains a foreign key to the table Company. In my View, I have a dropdownlist which contains all the companies.
What I probably need is a working example of inserting data into tables with foreign keys. I have searched around and tried many solutions but cannot figure out how to make it work.
Here's my code:
Model:
public class DefaultConnection : DbContext
{
public DefaultConnection()
: base("DefaultConnection")
{
}
public DbSet<User> users{ get; set; }
}
public class Company
{
public int Id { get; set; }
public string Name{ get; set; }
}
public class User
{
public int Id { get; set; }
[ForeignKey("Company")]
public int Id_Company { get; set; }
public Company Company{ get; set; }
}
ViewModel:
public class MyViewModel
{
public MyViewModel()
{
this.u= new User();
this.cl = new Companylist(); <== another class which i have create a selectlist
}
public User u{ get; set; }
public Companylist cl{get;set;}
}
View:
<ol>
<li>
@Html.LabelFor(m => m.cl.Ncompany)<br />
@Html.DropDownListFor(o => o.cl.Ncompany, Model.cl.Ncompany, "-- Select --", new { @class = "abc" })
</li>
<li>
@Html.LabelFor(m => m.u.Name)<br />
<input type="text" name="Name" value="" />
</li>
</ol>
Controller:
[HttpPost]
public ActionResult Create(MyViewModel model)
{
if (ModelState.IsValid)
{
db.users.Add(model);?????????????????
db.SaveChanges();
return RedirectToAction("Index");
}
return View(model);
}