【发布时间】:2022-11-30 01:48:33
【问题描述】:
我目前正在使用 EF Core,我有 3 个表
Campaign
CampaignStation
Station
CampaignStation是Campaign和Station之间的中间表
活动表:
public class Campaign
{
public int CampaignId { get; set; }
public string Name { get; set; } = string.Empty;
public ICollection<CampaignStation> Stations { get; set; } = new List<CampaignStation>();
}
public void Configure(EntityTypeBuilder<Campaign> builder)
{
builder.HasKey(x => x.CampaignId);
builder.Property(x => x.Name).IsRequired().HasMaxLength(250);
builder.HasMany(x => x.Stations).WithOne(y => y.Campaign);
}
所以一个活动可以有多个站,这就是为什么我有一个中间表作为:
public class CampaignStation
{
public int CampaignStationId { get; set; }
public int? CampaignId { get; set; }
[ForeignKey(nameof(CampaignId))]
public Campaign? Campaign { get; set; }
public int? StationId { get; set; }
[ForeignKey(nameof(StationId))]
public Station? Station { get; set; }
}
public void Configure(EntityTypeBuilder<CampaignStation> builder)
{
builder.ToTable("CampaignStations");
builder.HasKey(x => x.CampaignStationId);
builder.HasOne(x => x.Campaign);
builder.HasOne(x => x.Station);
}
获取服务:
return await _db.Campaigns
.Include(a => a.Agency)
.Include(s => s.Stations)
.ToListAsync();
但是 Stations 实体总是为 null,它正在获取中间表的 id,如下图所示:
为什么我无法访问 Station Entity?
【问题讨论】:
-
.Include(s => s.Stations).ThenInclude(cs => cs.Station)。
标签: c# entity-framework asp.net-core entity-framework-core