MVC Code First: One-to-many relationship between own model and SimpleMembership user

asp.net, asp.net-mvc, c#, entity-framework, simplemembership

Solution

You need to have UserId in your Comments as so.

public class Comment
{
    // snip - see above

    public int UserId {get; set;}
    public virtual UserProfile User { get; set; }
}

You will also need to set the relationship between your Comment and your User so in your account controller have something like this.

public class UserProfile
    {
        [Key]
        [DatabaseGeneratedAttribute(DatabaseGeneratedOption.Identity)]
        public int UserId { get; set; }
        public string UserName { get; set; }
        public virtual ICollection<Comment> Comments { get; set; }
    }

Problem

I am currently working on an event calendar website and I am still a novice when it comes to ASP.NET. I am using the MVC4 Framework, as well as the EntityFramework (CodeFirst) and the SimpleMembershipProvider, which comes with the MVC4 template. I am also using Migrations - If that is from any interest. What I've got so far I do currently have two models, with a one-to-many relationship, which work just fine: _Events.cs (had to name it that way, because event is reserved) ``` public class _Event { public int _EventId { get; set; } public string Name { get; set; } public DateTime StartDate { get; set; } public DateTime EndDate { get; set; } public virtual List<Comment> comments { get; set; } } ``` Comment.cs ``` public class Comment { public int CommentId { get; set; } public string Text { get; set; } public int _EventId { get; set; } public virtual _Event _Event { get; set; } } ``` The problem Now, I would like to add another one-to-many relationship between Comment and the User from the Membership model, but can't seem to figure out how to do so. The goal I would like to archieve is, that I can have a list of commments for each event and print out the user information for each comment. I tried several things, but could not get it to work yet. My last attempt looks like this: ``` public class Comment { // snip - see above public virtual UserProfile User { get; set; } } ``` I would like to thank you very much for any help in advance.

Original source