Прога Net Core 3.1.
Делаю так:
res = db.Zakaz.Include(p => p.Adres);
получаю:
SELECT `z`.`Code`, `z`.`Date_Beg`, `z`.`Source`, `a`.`Code`, `a`.`Target`, `a`.`Zakaz`
FROM `Zakaz` AS `z`
LEFT JOIN `Address` AS `a` ON `z`.`Code` = `a`.`Zakaz`
ORDER BY `z`.`Code`, `a`.`Code`
Модели:
public class Adres
{
[Key]
public int Code { get; set; }
[Required]
public int Zakaz { get; set; }
public string Target { get; set; }
public Order Order { get; set; }
}
И еще
public class Order
{
[Key]
public int Code { get; set; }
public int Source { get; set; }
public DateTime Date_Beg { get; set; }
public List<Adres> Adres { get; set; }
}
DTO
modelBuilder.Entity<Adres>(entity =>
{
entity.HasKey(e => e.Code);
entity.HasOne(e => e.Order).WithMany(r=>r.Adres).HasForeignKey(p => p.Zakaz).HasPrincipalKey(c => c.Code);
});
modelBuilder.Entity<Order>(entity =>
{
entity.HasKey(e => e.Code);
entity.HasMany(e=>e.Adres).WithOne(d=>d.Order).HasForeignKey(p => p.Zakaz).HasPrincipalKey(c => c.Code);
});
А в чём проблема? Include по сути и есть join
Обсуждают сегодня