【发布时间】:2019-03-25 06:21:35
【问题描述】:
我的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 class AppUser : IdentityUser
{
//just a placeholder for now until I add properties later
}
在我的 EF 存储库中,当我尝试将任何用户分配给多个项目作为 ProjectManager 集合的一部分时出现错误(例如,我可以将它们分配给 Project1,但当我将它们分配给 Project2 时抛出异常)。
public void AddProjectManager(int projectID, AppUser user)
{
Project proj = context.Projects.Include(p => p.ProjectManagers).FirstOrDefault(p => p.ProjectID == projectID);
if (!proj.ProjectManagers.Any(pm => pm.Id == user.Id))
{
AppUser appUser = identityContext.AspNetUsers.FirstOrDefault(p => p.Id == user.Id);
if (appUser != null)
{
proj.ProjectManagers.Add(appUser);
//ERROR OCCURS HERE WHEN I TRY TO SAVE
context.SaveChanges();
}
}
}
我收到以下错误:
Violation of PRIMARY KEY constraint 'PK_AppUser'. Cannot insert duplicate key in object 'dbo.AppUser'. The duplicate key value is (xxx).
我尝试使用UserManager 方法,但得到相同的错误
【问题讨论】:
-
一个AppUser可以分配给多个Projects吗?
-
@Priyank Panchal 这是我的意图,允许将一个用户分配到多个项目。不过,我可能错误地实施了这个想法
标签: entity-framework asp.net-core asp.net-identity