Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/302.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/asp.net-core/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 无法跟踪实体类型的实例_C#_Asp.net Core_Asp.net Identity - Fatal编程技术网

C# 无法跟踪实体类型的实例

C# 无法跟踪实体类型的实例,c#,asp.net-core,asp.net-identity,C#,Asp.net Core,Asp.net Identity,我有这段代码 try { var isRemoved = await _userManager.RemoveFromRolesAsync(user, removedRoles); var isAdded = await _userManager.AddToRolesAsync(user, newRoles); success = isAdded.Succeeded && isRemoved.Succeeded; } catch(Exception e) { Cons

我有这段代码

try
{
  var isRemoved = await _userManager.RemoveFromRolesAsync(user, removedRoles);
  var isAdded = await _userManager.AddToRolesAsync(user, newRoles);
  success = isAdded.Succeeded && isRemoved.Succeeded;
}
catch(Exception e)
{
 Console.Out.Write(e.Message);
}
每当我点击该行代码时,就会得到
无法跟踪实体类型'IdentityUser'的实例,因为已经在跟踪另一个具有{'Id'}相同键值的实例。附着现有实体时,请确保仅附着一个具有给定键值的实体实例。考虑使用“dBraveTopStudioBuffel.EnabelSythViDeAtCug”来查看冲突的键值。< /代码>错误。很多回答建议我将注册服务的方式从单一注册改为范围注册。我将如何在注册身份用户时做到这一点。这就是我目前注册服务的方式

 services.AddDbContext<ApplicationDbContext>(options =>
            options.UseSqlServer(
                Configuration.GetConnectionString("DefaultConnection")));
        services.AddDefaultIdentity<IdentityUser>(options =>
                {
                    options.SignIn.RequireConfirmedAccount = true;
                    options.Password.RequireDigit = true;
                    options.Password.RequireLowercase = true;
                    options.Password.RequireNonAlphanumeric = true;
                    options.Password.RequireUppercase = true;
                    options.Password.RequiredLength = 8;
                })
            .AddRoles<IdentityRole>()
            .AddEntityFrameworkStores<ApplicationDbContext>();
services.AddDbContext(选项=>
options.UseSqlServer(
GetConnectionString(“DefaultConnection”);
services.AddDefaultIdentity(选项=>
{
options.SignIn.RequireConfirmedAccount=true;
options.Password.RequireDigit=true;
options.Password.RequireLowercase=true;
options.Password.RequireNonAlphanumeric=true;
options.Password.RequireUppercase=true;
options.Password.RequiredLength=8;
})
.AddRoles()
.AddEntityFrameworkStores();

另一个建议是分离本地条目,但由于这是由asp.net控制的,我将如何执行此操作?

在调用上述代码将用户从角色中删除之前,请尝试使用以下代码附加用户:
\u db.attach(user)。此外,您还可以参考以下代码来配置ApplicationDbContext:
services.AddDbContext(options=>{options.UseQueryTrackingBehavior(QueryTrackingBehavior.NotTracking);})