То, что вы хотите построить, - это соотношение 1: 1 между вашим активом и устройством отслеживания.Ваш код, если он не настроен должным образом, действительно говорит EF Core, что у каждого из вас есть объект, связанный с ним.
Чтобы EF Core понял это, вам нужно объявить свои отношения:
protected override void OnModelCreating(ModelBuilder modelBuilder)
{
modelBuilder.Entity<Asset>()
.HasOne(a => a.TrackingDevice)
.WithOne(t => t.Asset)
.HasForeignKey<TrackingDevice>(b => b.AssetId);
}
Пожалуйста, посмотрите здесь , чтобы получить больше информации о том, как это настроить.
Кроме того, чтобы избежать EF, чтобы избежать возврата вложенных объектов, попробуйте использовать Выберите вместо включения (затем вы можете экспортировать именно то, что вам нужно):
var list = _appContext.TrackingDevices
.Select(t => new {
TrackingDevice = t,
...
Asset = Asset,
});