'Why does EF insert the same Guid Ids in different fileds?

I've a Page entity dependent on Investor entity as investor creates a page:

public class Page
{
    [Required, DatabaseGenerated(DatabaseGeneratedOption.Identity), Key]
    public Guid Id { get; set; }

    [Required(ErrorMessage = "Describe the idea of your blog")]
    public string Description { get; set; }

    [Display(Name = "Тags")]
    [Required(ErrorMessage = "Let people know what content you're going to share")]
    public ICollection<Investor> Subscribers { get; set; }
    public Guid AuthorId { get; set; }
    public Investor Author { get; set; }
}

That's what in my dbContext:

    modelBuilder.Entity<Page>()
        .HasOne(b => b.Author)
        .WithOne(u=> u.Page)
        .HasForeignKey<Page>(b => b.AuthorId)
        .OnDelete(DeleteBehavior.Restrict);

Here's the controller for creating a Page:

public class PageController : Controller
    {
        private readonly DataManager _dataManager;
        private readonly UserManager<ApplicationUser> _userManager;

        public PageController(UserManager<ApplicationUser> userManager, DataManager dataManager)
        {
            _userManager = userManager;
            _dataManager = dataManager;
        }

        public IActionResult Create(Guid Id)
        {
            var investor = _dataManager.Investors.GetInvestorById(Id);
            if (investor.Page != null)
            {
                return RedirectToPage("/Account/ProfileCheck", new { Id = investor.User.Id, area = "Identity"});
            }
            var page = new Page();
            return View(page);
        }
        [HttpPost]
        [ValidateAntiForgeryToken]
        public IActionResult Create(Page page)
        {
            if (ModelState["Description"].Errors.Count() == 0)
            {
                var currentUserId = _userManager.GetUserId(HttpContext.User);
                var investor = _dataManager.Investors.GetInvestorByUserId(currentUserId);
                page.Author = investor;
                _dataManager.Pages.SavePage(page);
                return RedirectToPage("/Account/ProfileCheck", new { Id = investor.User.Id, area = "Identity" });
            }
            return View(page);
        }
    }

However, In HttpPost Action that page has an Id and this Id equals to author's Id who created it.

This's the view for Create action

@model FinicWebApp.Domain.Entitites.Page
<form method="post" asp-action="Create">
    <div class="border p-3">
        <div asp-validation-summary="ModelOnly" class="text-danger" ></div>
        <div class="form-group row">
            <h2 class="text-black-50 pl-3">Create Page</h2>
        </div>
        <div class="row">
            <div class="col-12">
                <div class="form-group row">
                    <div class="col-6">
                        <label asp-for="Description"></label>
                    </div>
                </div>
                <div class="form-group row">
                    <div class="col-4">
                        <input asp-for="Description" class="form-control" />
                        <span asp-validation-for="Description" class="text-danger"></span>
                    </div>
                </div>
                <div class="form-group row">
                    <div class="col-8 text-center row">
                        <div class="col">
                            <input type="submit" class="btn btn-info w-75" value="Create"/>
                        </div>
                    </div>
                </div>
            </div>
        </div>
    </div>
</form>

In my db all the pages' ids equal to investors' ids who created them. But I need pages' ids to be different. How can I get it?



Sources

This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.

Source: Stack Overflow

Solution Source