我想禁用UserManager的自动SaveChanges方法调用。我发现可以通过设置UserStore的AutoSaveChanges属性来做到这一点。但是,.NET Core 2.1中此类事情的最佳实践是什么?通过配置IdentityBuilder,可以在Startup.cs中进行操作吗?
最佳答案
您需要创建一个继承形式Microsoft.AspNetCore.Identity.EntityFrameworkCore.UserStore<IdentityUser>
的类,并在构造函数中将AutoSaveChanges
设置为false
,然后在IServiceCollection
之前将该类注册到AddEntityFrameworkStores
。
public class CustomUserStore : UserStore<IdentityUser>
{
public CustomUserStore(ApplicationDbContext context)
: base(context)
{
AutoSaveChanges = false;
}
}
启动文件
public void ConfigureServices(IServiceCollection services)
{
services.AddScoped<IUserStore<IdentityUser>, CustomUserStore>();
services.AddDbContext<ApplicationDbContext>(options =>
options.UseSqlServer(
Configuration.GetConnectionString("DefaultConnection")));
services.AddDefaultIdentity<IdentityUser>()
.AddDefaultUI(UIFramework.Bootstrap4)
.AddEntityFrameworkStores<ApplicationDbContext>();
}
关于c# - .NET Core 2.1中UserManager的AutoSaveChanges,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/50846329/