我有一个Project
类,其中包含AppUsers
public class Project
{
public int ProjectID { get; set; }
[Required(ErrorMessage = " Please enter a project name")]
public string Name { get; set; }
[Required(ErrorMessage = " Please enter a project description")]
public string Description { get; set; }
public virtual ICollection<AppUser> ProjectManagers { get; set; }
public bool UserIsAlreadyPM(string userId)
{
foreach(AppUser user in this.ProjectManagers)
{
if(user.Id == userId)
{
return true;
}
}
return false;
}
}
我的AppUser
班
public class AppUser : IdentityUser
{
//add properties here later
}
我希望能够使任何特定的AppUser
都在多个ProjectManagers
的{{1}}之内。我通过存储库方法将Project
添加到任何AppUser
中:
Project.ProjectManagers
这是第一次将public void AddProjectManager(int projectID, AppUser user)
{
Project proj = context.Projects.FirstOrDefault(p => p.ProjectID == projectID);
if(proj != null)
{
proj.ProjectManagers.Add(user);
context.SaveChanges();
}
}
添加到AppUser
集合中的情况。但是,如果我尝试将它们添加到任何其他Project.ProjectManagers
集合中,则将无法使用。如果将它们分配给任何后续的Project.ProjectManagers
,我会得到一个主键错误,因为它们已经在数据库中的另一个项目下。
“ SqlException:违反主键约束'PK_AppUser'。无法在对象'dbo.AppUser'中插入重复键。重复键值为(xxxx)。“
答案 0 :(得分:1)
请按如下所示编写您的代码:
flex-row sm:flex-col lg:flex-row justify-center h-full