Asp.net core 如果创建一个ID已经存在的用户,会发生什么情况?

Asp.net core 如果创建一个ID已经存在的用户,会发生什么情况?,asp.net-core,asp.net-identity,Asp.net Core,Asp.net Identity,假设我运行这个: var user = new UserSchema { UserName = model.UserName, Email = model.Email }; var result = await _userManager.CreateAsync(user, model.Password); 我看到user的Id属性是在new上生成的。如果对于某些极不可能存在Id为Id的用户,会发生什么情况?如果您在启动时设置了UserOptions,例如options.user.Require

假设我运行这个:

var user = new UserSchema { UserName = model.UserName, Email = model.Email };
var result = await _userManager.CreateAsync(user, model.Password);

我看到
user
Id
属性是在
new
上生成的。如果对于某些极不可能存在Id为
Id
的用户,会发生什么情况?

如果您在启动时设置了UserOptions,例如options.user.RequireUniqueEmail=true;它将返回带有错误的IdentityResult(在这里的示例中,错误为“DuplicateEmail”)


来源:

通常使用UserName=model。Email将抛出一个
DbUpdateException
@tmg。这取决于存储的配置方式。如果使用其他内容(如AzureTables)代替EF您可能根本不会遇到异常!即使使用EF,如果
User.Id
上没有PK或其他唯一约束,您也可以成功地插入。@trailmax只要我活着,我就学习