Today, I worked on resolving a common database error when saving related data in the wrong order.

๐Ÿ” ๐—œ๐˜€๐˜€๐˜‚๐—ฒ:

๐—ฅ๐—ฒ๐˜€๐˜‚๐—บ๐—ฒ๐—™๐—ถ๐—น๐—ฒ ๐—ต๐—ฎ๐˜€ ๐—ฎ ๐—ณ๐—ผ๐—ฟ๐—ฒ๐—ถ๐—ด๐—ป ๐—ธ๐—ฒ๐˜† ๐˜๐—ผ ๐—๐—ผ๐—ฏ๐—”๐—ฝ๐—ฝ๐—น๐—ถ๐—ฐ๐—ฎ๐˜๐—ถ๐—ผ๐—ป.

๐—œ ๐˜„๐—ฎ๐˜€ ๐˜€๐—ฎ๐˜ƒ๐—ถ๐—ป๐—ด ๐—ฅ๐—ฒ๐˜€๐˜‚๐—บ๐—ฒ๐—™๐—ถ๐—น๐—ฒ ๐—ณ๐—ถ๐—ฟ๐˜€๐˜ โ€” ๐—ฏ๐˜‚๐˜ ๐—๐—ผ๐—ฏ๐—”๐—ฝ๐—ฝ๐—น๐—ถ๐—ฐ๐—ฎ๐˜๐—ถ๐—ผ๐—ป ๐—ฑ๐—ถ๐—ฑ๐—ปโ€™๐˜ ๐—ฒ๐˜…๐—ถ๐˜€๐˜ ๐˜†๐—ฒ๐˜, ๐˜„๐—ต๐—ถ๐—ฐ๐—ต ๐—ฐ๐—ฎ๐˜‚๐˜€๐—ฒ๐—ฑ ๐—ฎ ๐—ณ๐—ผ๐—ฟ๐—ฒ๐—ถ๐—ด๐—ป ๐—ธ๐—ฒ๐˜† ๐—ฐ๐—ผ๐—ป๐˜€๐˜๐—ฟ๐—ฎ๐—ถ๐—ป๐˜ ๐—ฒ๐—ฟ๐—ฟ๐—ผ๐—ฟ.

๐Ÿ›  ๐—™๐—ถ๐˜… (๐—ฆ๐˜๐—ฒ๐—ฝ๐˜€):

  1. Made JobApplicationId nullable in ResumeFile model.

public int? JobApplicationId { get; set; }

  1. ๐—ฆ๐—ฎ๐˜ƒ๐—ฒ๐—ฑ ๐—ฅ๐—ฒ๐˜€๐˜‚๐—บ๐—ฒ๐—™๐—ถ๐—น๐—ฒ without setting JobApplicationId:

_unitOfWork.ResumeFile.Add(resumeFile);

_unitOfWork.Save();

  1. ๐—ฆ๐—ฎ๐˜ƒ๐—ฒ๐—ฑ ๐—๐—ผ๐—ฏ๐—”๐—ฝ๐—ฝ๐—น๐—ถ๐—ฐ๐—ฎ๐˜๐—ถ๐—ผ๐—ป and used the generated ID:

_unitOfWork.JobApplication.Add(jobApplication);

_unitOfWork.Save();

  1. ๐—จ๐—ฝ๐—ฑ๐—ฎ๐˜๐—ฒ๐—ฑ ๐—ฅ๐—ฒ๐˜€๐˜‚๐—บ๐—ฒ๐—™๐—ถ๐—น๐—ฒ ๐˜„๐—ถ๐˜๐—ต ๐—๐—ผ๐—ฏ๐—”๐—ฝ๐—ฝ๐—น๐—ถ๐—ฐ๐—ฎ๐˜๐—ถ๐—ผ๐—ป๐—œ๐—ฑ:

resumeFile.JobApplicationId = jobApplication.Id;

_unitOfWork.ResumeFile.Update(resumeFile);

_unitOfWork.Save();

๐Ÿ“Œ ๐—Ÿ๐—ฒ๐˜€๐˜€๐—ผ๐—ป: ๐—ฆ๐—ฎ๐˜ƒ๐—ฒ ๐—ฝ๐—ฎ๐—ฟ๐—ฒ๐—ป๐˜ ๐—ฟ๐—ฒ๐—ฐ๐—ผ๐—ฟ๐—ฑ๐˜€ ๐—ณ๐—ถ๐—ฟ๐˜€๐˜ ๐—ถ๐—ณ ๐—ณ๐—ผ๐—ฟ๐—ฒ๐—ถ๐—ด๐—ป ๐—ธ๐—ฒ๐˜† ๐—ฐ๐—ผ๐—ป๐˜€๐˜๐—ฟ๐—ฎ๐—ถ๐—ป๐˜๐˜€ ๐—ฒ๐˜…๐—ถ๐˜€๐˜ โ€” ๐—ผ๐—ฟ ๐—บ๐—ฎ๐—ธ๐—ฒ ๐˜๐—ต๐—ฒ ๐—™๐—ž ๐—ป๐˜‚๐—น๐—น๐—ฎ๐—ฏ๐—น๐—ฒ ๐—ฎ๐—ป๐—ฑ ๐˜‚๐—ฝ๐—ฑ๐—ฎ๐˜๐—ฒ ๐—ถ๐˜ ๐—น๐—ฎ๐˜๐—ฒ๐—ฟ.

๐Ÿ’ฌ ๐—›๐—ผ๐˜„ ๐—ฑ๐—ผ ๐˜†๐—ผ๐˜‚ ๐—ต๐—ฎ๐—ป๐—ฑ๐—น๐—ฒ ๐˜€๐—ฎ๐˜ƒ๐—ถ๐—ป๐—ด ๐—ฟ๐—ฒ๐—น๐—ฎ๐˜๐—ฒ๐—ฑ ๐—ฒ๐—ป๐˜๐—ถ๐˜๐—ถ๐—ฒ๐˜€ ๐˜„๐—ถ๐˜๐—ต ๐—ณ๐—ผ๐—ฟ๐—ฒ๐—ถ๐—ด๐—ป ๐—ธ๐—ฒ๐˜†๐˜€ ๐—ถ๐—ป ๐—˜๐—™ ๐—–๐—ผ๐—ฟ๐—ฒ? ๐—”๐—ป๐˜† ๐˜๐—ถ๐—ฝ๐˜€ ๐—ผ๐—ฟ ๐—ฏ๐—ฒ๐˜€๐˜ ๐—ฝ๐—ฟ๐—ฎ๐—ฐ๐˜๐—ถ๐—ฐ๐—ฒ๐˜€?