我正在尝试使用 ASP.NET MVC 4 构建一个 Web 应用程序,但我已经被困了一段时间,并且在其他帖子中没有发现任何帮助:
我有两个模型类:用户和组。用户可以在任意数量的组中,并且一个组有一个用户列表(成员)。当用户创建一个组时,他将成为该组的所有者。
我的问题是,每当我尝试创建一个新组(并将当前用户添加到这个新组的成员列表中)时,以前的组似乎被修改了,因为当前用户不再是他的成员以前创建的组。
我希望我已经足够理解了,如果我不理解,我很抱歉(英语不是我的母语)。
以下是与我的问题相关的模型类: UserProfile 类:
[Table("UserProfile")]
public class UserProfile
{
[Key]
[DatabaseGeneratedAttribute(DatabaseGeneratedOption.Identity)]
public int UserId { get; set; }
public string UserName { get; set; }
public string FirstName { get; set; }
public string LastName { get; set; }
public virtual List<Group> Groups { get; set; }
public virtual List<Group> OwnedGroups { get; set; }
}
班级组:
public class Group
{
[Key]
[DatabaseGeneratedAttribute(DatabaseGeneratedOption.Identity)]
public int GroupId { get; set; }
[Required]
public string Name { get; set; }
public string Description { get; set; }
public virtual List<UserProfile> Members { get; set; }
public virtual UserProfile Owner { get; set; }
}
我的方法用于创建一个新组(在 GroupController 中):
[HttpPost]
public ActionResult Create(Group group)
{
if (ModelState.IsValid)
{
UserProfile user = db.UserProfiles.Where(u => u.UserName == User.Identity.Name).FirstOrDefault();
db.Groups.Add(group);
db.SaveChanges();
group.Owner = user;
user.OwnedGroups.Add(group);
user.Groups.Add(group);
group.Members = new List<UserProfile>();
group.Members.Add(user);
db.SaveChanges();
return RedirectToAction("SearchUsersToAddToGroup", new { groupId = group.GroupId });
}
我究竟做错了什么 ?