当我从头开始创建新用户(注册)并从不依赖于底层数据库的登录用户创建新用户时,我有这种奇怪的行为(在本例中我使用的是 postgreSQL)。但首先是关系:
现在,在注册时和登录时,我都使用它UserManager来创建用户。
首先,我创建一个新的UserSetting,SaveChanges()然后将新创建的实体的值分配给该AppUser属性。UserSettingIdId
这是失败的地方,具体取决于您是否已经是注册并登录的用户或者您是新注册用户,代码不会更改:
var userSettings = await _userService.UserSettings.AddAsync(new UserSettings
{
LanguageId = langId,
ThemeId = themeId
});
//wrapper to the Context.SaveChangesAsync()
//failure point!
if (!await _userService.SaveChangesAsync<bool>())
异常错误(在从已登录的用户创建新用户时)讨论了PK_LanguageId已经存在的语言实体,就好像我正在创建一个新的语言实体一样,但是,如您所见,我只是将默认值分配langId给新的UserSetting. 这是异常截图:
(对不起,意大利语,它会自动翻译)简短翻译: 重复的键Languages
,就好像它试图插入一个新Language
实体一样。
并且在Startup
注册的服务(_userService
)是暂时的。
我做错了什么?为什么它的行为如此不同?是否有其他方法可以从已登录的用户创建用户?
隔江千里
SMILET
相关分类