Ошибка при попытке вставить запись в базу данных, на которую ссылается applicationuser - PullRequest
0 голосов
/ 05 ноября 2019

У меня есть следующие отношения один ко многим:

public class ApplicationUser : IdentityUser
{
    public string FirstName { get; set; }
    public string LastName { get; set; }
    public string Company { get; set; }
    public virtual ICollection<GSMSite> GSMSites { get; set; }
}

public class GSMSite
{
    public int Id { get; set; }
    public string SiteName { get; set; }
    public string AddressLine1 { get; set; }
    public string AddressLine2 { get; set; }
    public string Town { get; set; }
    public string Postcode { get; set; }
    public string ContactName { get; set; }
    public string ContactNumber { get; set; }
    public string ContactEmail { get; set; }
    public virtual ApplicationUser ApplicationUser { get; set; }
}

Конфигурация Builder:

      builder.Entity<ApplicationUser>()
               .HasMany(c => c.GSMSites)
               .WithOne(e => e.ApplicationUser)
               .IsRequired();

Контроллер:

  [Route("createsite")]
    [HttpPost]
    public async Task<IActionResult> CreateSite(GSMSite site)
    {
        var user = await _userManager.FindByIdAsync(HttpContext.GetUserId().ToString());

        var GSMSite = new GSMSite
        {
            SiteName = site.SiteName,
            AddressLine1 = site.AddressLine1,
            AddressLine2 = site.AddressLine2,
            Town = site.Town,
            Postcode = site.Postcode,
            ContactName = site.ContactName,
            ContactNumber = site.ContactNumber,
            ContactEmail = site.ContactEmail,
            ApplicationUser = user
        };

        await _gSMSitesServices.CreateSiteAsync(site);

        return Ok();

    }

Я могу добавить пользователей в порядке, хотя я получаю следующую ошибку при попытке добавить GSMSite. Я проверил пользователя, и он содержит текущий пользователь, какие-либо идеи?

Microsoft.EntityFrameworkCore.DbUpdateException: An error occurred while updating the entries. See the inner exception for details. ---> System.Data.SqlClient.SqlException: Cannot insert the value NULL into column 'ApplicationUserID', table 'videxbui_app.dbo.GSMSite'; column does not allow nulls. INSERT fails.
The statement has been terminated.
...