I'm creating an MVC3 asp.net application using Entity Framework 4 and C#.
I've tried to read up on EF and model binding, lazy loading, etc. But I've hit an obstacle.
I have a User Model. The Store and UserType models can have an ICollection of Users. When I add a User with the Create Action, How do I specify multiple parents?
I think that I only know how to add if there is one parent.
My Models:
 public class UserType
{
    public virtual int ID { get; set; }
    public virtual string UserTypeName { get; set; }
    public virtual ICollection<User> Users { get; set; }
}
public class Store
{
    public virtual int ID { get; set; }
    public virtual string StoreName { get; set; }
    public virtual Address StoreAddress { get; set; }
    public virtual ICollection<Workroom> Workrooms { get; set;}
    public virtual ICollection<User> Users { get; set; }
}
    public class User
{
    public virtual int ID { get; set; }
    public virtual string Username { get; set; }
    public virtual string Email { get; set; }
    public virtual Store Store { get; set; }
    public virtual UserType UserType { get; set; }
}
Here is my db context:
    public DbSet<Workroom> Workrooms { get; set; }
    public DbSet<Ticket> Tickets { get; set; }
    public DbSet<Customer> Customers { get; set; }
    public DbSet<Store> Stores { get; set; }
    public DbSet<User> Users { get; set; }
    public DbSet<UserType> UserTypes { get; set; }
    protected override void OnModelCreating(ModelBuilder modelBuilder)
    {
        modelBuilder.Entity<Store>()
            .HasMany(store => store.Workrooms)
            .WithRequired(workroom => workroom.Store);
        modelBuilder.Entity<Store>()
            .HasMany(store => store.Users)
            .WithRequired(user => user.Store);
        modelBuilder.Entity<UserType>()
            .HasMany(usertype => usertype.Users)
            .WithRequired(user => user.UserType);
        base.OnModelCreating(modelBuilder);
    }
Here's my create action:
    public ActionResult Create()
    {
        return View(new User());
    } 
    //
    // POST: /Users/Create
    [HttpPost]
    public ActionResult Create(User newUser)
    {
        try
        {
            int storeID = newUser.Store.ID;
            var store = _db.Stores.Single(r => r.ID == storeID);
            store.Users.Add(newUser);
            _db.SaveChanges();
            return RedirectToAction("Index");
        }
        catch (Exception ex)
        {
            ModelState.AddModelError("", ex.InnerException.Message);
            return View();
        }
    }
Do I just add another "Add" call for UserType? for example: int userTypeID = newUser.UserType.ID var usertype = _db.UserTypes.Single(s => s.ID == userTypeID)
How would the Entity Framework know that Users has another Parent??? ...do I care?
My hunch is that I should be doing this a different way, more specific and more accurate.