У меня есть следующие отношения один ко многим:
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.