Hej wszystkim.
Mam problem i nie potrafię sobie poradzić z nim. Przeszukałem google ale nie udało mi się znaleźć rozwiązania.
Mam model Customer
public class CustomerModel : IdentityUser
{
public string FirstName { get; set; }
public string LastName { get; set; }
public string NIP { get; set; }
[ForeignKey("Address")]
public int AddressId { get; set; }
public AddressModel Address { get; set; }
}
A model Address wygląda następująco
public class AddressModel
{
[Key]
public int Id { get; set; }
public string HouseNumber { get; set; }
public string Street { get; set; }
public string Town { get; set; }
public string Voivodeship { get; set; }
public string ZipCode { get; set; }
}
W Register.cshtml.cs w klasie InputModel dodałem zmienne, które przechowują dane z inputów
[Required]
[StringLength(30, ErrorMessage = "{0} musi mieć co najmniej {2} i maksymalnie {1} znaków.", MinimumLength = 2)]
[RegularExpression("^[a-zA-ZąćęłńóśźżĄĆĘŁŃÓŚŹŻ]+$")]
[Display(Name = "Miejscowość")]
public string Town { get; set; }
... reszta kodu niżej ...
Następnie przypisuje do usera dane z formularza.
public async Task<IActionResult> OnPostAsync(string returnUrl = null)
{
returnUrl ??= Url.Content("~/");
ExternalLogins = (await _signInManager.GetExternalAuthenticationSchemesAsync()).ToList();
if (ModelState.IsValid)
{
var user = CreateUser();
user.FirstName = Input.FirstName;
user.LastName = Input.LastName;
user.NIP = Input.NIP;
user.Address.HouseNumber = Input.HouseNumber;
user.Address.Street = Input.Street;
user.Address.Town = Input.Town;
user.Address.Voivodeship = Input.Voivodeship;
user.Address.ZipCode = Input.ZipCode;
await _userStore.SetUserNameAsync(user, Input.Email, CancellationToken.None);
await _emailStore.SetEmailAsync(user, Input.Email, CancellationToken.None);
var result = await _userManager.CreateAsync(user, Input.Password);
... Reszta kodu niżej ...
I problem następuje w momencie kiedy próbuję przypisać dane z inputa do tabeli z klucza obcego (czyli np. user.Address.HouseNumber = Input.HouseNumber; -> Tutaj wywala błąd "Object reference not set to an instance of an object") A w user.FirstName bez problemu przypisuje wartość inputa.
Mógłby ktoś poradzić w jaki sposób rozwiązać ten problem?