I have this model and what I want to do is to is to generate a value for RefNumber that based it from the Id. Example value is if the data stored has an Id of 1, the reference number should be XYZ001 where the first 3 letters are just random and 001 is just the id plus a padded left zeros.
public class Receipt: BaseModel
{
[Key]
[DatabaseGenerated(DatabaseGeneratedOption.Identity)]
public int Id { get; set; }
[Required]
public string RefNumber { get; set; }
}
I want to avoid this kind of logic where I manually set the RefNumber and call SaveChanges again like below:
var receipt = new Receipt()
database.Receipts.Add(receipt)
await database.SaveChangesAsync(cancellation).ConfigureAwait(false);
// I don't want to do this
receipt.RefNumber = GenerateRefNumber(receipt.Id)
await database.SaveChangesAsync(cancellation).ConfigureAwait(false);
Is there a better way in doing this? I want to do this on first SaveChanges but I don't know how.