Я работаю над проектом, где ASP. NET Ядро на стороне сервера, а ANGULAR 8 на стороне клиента. Я дошел до того, что при отправке данных в базу данных происходит странное поведение.
Я сделал функцию «Сохранить нового пользователя», и все работало хорошо. Новый пользователь записывается в базу данных, и его идентификатор, который является первичным ключом, увеличивается. Например (последний пользователь в таблице «Users» имел Id 10, новый пользователь получил Id 11). Все тестируется с почтальоном и с клиентского Angular кода.
Затем я добавил функциональность "Обновить пользователя". Эта функциональность также работала нормально, но теперь, когда я сохраняю нового пользователя в db, Id получает некоторое значение 4 * di git (последний пользователь в таблице «Users» имел Id 11, новый пользователь получил Id 1020). Это не происходит в Почтальоне, а только в Angular коде.
Я диагностировал, где проблема, но я действительно не понимал, почему это произошло.
Когда у меня есть только функция «Сохранить нового пользователя», все в порядке.
.ts code
save() {
this.service.addUser(this.newuserForm.value)
.subscribe(x => {
this.newuserForm.markAsPristine();
this.router.navigate(['users']);
});
}
Но когда я добавляю функцию обновления, проблема, которую я объяснил, это повышение .
.ts code
save() {
let result;
if (this.id) {
result = this.service.updateUser(this.id, this.newuserForm.value);
} else {
result = this.service.addUser(this.newuserForm.value);
}
result.subscribe(x => {
this.newuserForm.markAsPristine();
this.router.navigate(['users']);
});
}
Может ли кто-нибудь объяснить такое поведение? Подводя итоги: вышеописанная функция save () создает проблемы, но при использовании кода, подобного приведенному ниже, проблем не возникает.
save() {
if (this.id) {
this.service.updateUser(this.id, this.userForm.value)
.subscribe(x => {
this.userForm.markAsPristine();
this.router.navigate(['users']);
});
} else {
this.service.addUser(this.userForm.value)
.subscribe(x => {
this.userForm.markAsPristine();
this.router.navigate(['users']);
});
}
}