Merci d'avance pour votre aide. Je suis un peu confus au sujet d'une situation qui m'est apparue lors de l'utilisation de la méthode include()
Entity Framework 6. Si je comprends bien, la méthode include fonctionne comme LEFT JOIN
lorsque l'objet ci-joint est NULL
et OUTER JOIN
lorsque l'objet correspond.Include() ne fonctionne pas en tant que LEFT JOIN (Entity Framework 6)
Je vais passer l'exemple qui m'est apparu, afin que vous m'aidiez à comprendre ce qui s'est passé.
Je les modèles suivants à mes tableaux:
public class Booking
{
[Key]
public int ID{ get; set; }
public string Description{ get; set; }
public decimal Amount{ get; set; }
public decimal AmoutPaid{ get; set; }
public DateTime? Checkin { get; set; }
public DateTime? Checkout { get; set; }
[ForeignKey("SourceBooking ")]
public int SourceBookingId { get; set; }
public SourceBooking SourceBooking { get; set; }
}
public class SourceBooking
{
[Key]
public int ID{ get; set; }
public string Name{ get; set; }
public decimal CommissionFee{ get; set; }
}
est inférieure à la DbContext
:
public class BookingContext:DbContext
{
public BookingContext():base("bookingConnection")
{
}
public DbSet<Booking> Bookings{ get; set; }
protected override void OnModelCreating(DbModelBuilder modelBuilder)
{
modelBuilder.Entity<SourceBooking>().ToTable("sourcebookings", "public");
modelBuilder.Entity<Booking>().ToTable("bookings", "public");
}
}
La situation qui ne sait pas a eu lieu dans l'utilisation du bloc de code suivant:
var db = new BookingContext();
var bookings = db.Bookings.Include (b => b.SourceBooking);
J'ai tendu parce que dans les résultats les enregistrements ne sont pas venus dont SourceBooking
est NULL
, auquel cas un LEFT JOIN
serait fait.
Est-ce que quelqu'un pourrait m'expliquer cela et me donner une solution possible à cette situation?
Merci.
dans votre classe de réservation, vous devez mettre '[ForeignKey ("SourceBookingId")]' ci-dessus propriété SourceBooking – OrcusZ
D'accord, mais il l'a fait pas résoudre mon problème. –
comment puis-je faire cette même relation en utilisant l'API Fluent? –