У меня есть сложный тип (общежитие), который имеет поле адреса (тип адреса), но когда я отлаживаю функцию в общежитии, он имеет поле адреса = null, хотя при открытии проводника базы данных внешний ключ addressID заполнено правильно.
Я убедился, что SQL правильный, но сейчас не уверен, где искать ошибку
dbcontext выглядит следующим образом, и у меня есть идея, что это может быть там, где проблема
namespace OptimalHousing.Models
{
public class OptimalHousingContext : DbContext
{
public OptimalHousingContext (DbContextOptions<OptimalHousingContext> options)
: base(options)
{
}
public DbSet<OptimalHousing.Models.Dorm> Dorm { get; set; }
public DbSet<OptimalHousing.Models.Address> addresses { get; set; }
}
}
Общежитие sql
CREATE TABLE [dbo].[Dorm] (
[id] INT IDENTITY (1, 1) NOT NULL,
[addressid] INT NULL,
[dormName] NVARCHAR (MAX) NULL,
[dormUrl] NVARCHAR (MAX) NULL,
CONSTRAINT [PK_Dorm] PRIMARY KEY CLUSTERED ([id] ASC),
CONSTRAINT [FK_Dorm_Address_addressid] FOREIGN KEY ([addressid]) REFERENCES [dbo].[Addresses] ([id])
);
GO
CREATE NONCLUSTERED INDEX [IX_Dorm_addressid]
ON [dbo].[Dorm]([addressid] ASC);
Адреса sql
CREATE TABLE [dbo].[addresses] (
[id] INT IDENTITY (1, 1) NOT NULL,
[street] NVARCHAR (MAX) NULL,
[streetNumber] INT NOT NULL,
[zipCode] INT NOT NULL,
[longitude] NVARCHAR (MAX) NULL,
[latitude] NVARCHAR (MAX) NULL,
CONSTRAINT [PK_addresses] PRIMARY KEY CLUSTERED ([id] ASC)
);
Мои занятия:
public class Dorm
{
[Key]
public int id { get; set; }
public Dorm() {}
[DisplayFormat(NullDisplayText = "No address")]
public Address address { get; set; }
public string dormName { get; set; }
public string dormUrl { get; set; }
}
public class Address
{
[Key]
public int id { get; set; }
public string street { get; set; }
public int streetNumber { get; set; }
public int zipCode { get; set; }
public string longitude { get; set; }
public string latitude { get; set; }
}
Пожалуйста, дайте мне знать, если какой-то другой код необходим для решения проблемы