도움을 주셔서 감사합니다. include()
메서드 엔터티 프레임 워크 6을 사용할 때 나에게 일어난 상황에 대해 약간 혼란 스럽습니다. 이해할 수 있듯이, 포함 된 개체가 NULL
이고 개체가 일치 할 때 OUTER JOIN
인 경우 포함 메서드는 LEFT JOIN
으로 작동합니다.Include()가 LEFT JOIN (Entity Framework 6)으로 작동하지 않습니다.
나는 일어난 예제를 전달하여, 무슨 일이 일어 났는지 이해하도록 도와줍니다.
내 테이블에 다음과 같은 모델을 가지고 : 아래
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; }
}
가
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");
}
}
다음 코드 블록의 사용에서 발생 명확하지 않다 상황 :
var db = new BookingContext();
var bookings = db.Bookings.Include (b => b.SourceBooking);
나는 때문에 결과에 레코드가 오지 않았다 경향 SourceBooking
이 NULL
인 경우이 경우 LEFT JOIN
이됩니다.
누군가 나에게이 사실을 설명하고이 상황에 대한 해결책을 제시 할 수 있습니까?
감사합니다.
을 Null 허용하는 FK 속성 유형을 변경하면'[외래 키 ("SourceBookingId")]'SourceBooking 속성 위 – OrcusZ
좋아요를 넣어해야하지만했다 내 문제를 해결하지 못해. –
어떻게 Fluent API를 사용하여 이와 동일한 관계를 만들 수 있습니까? –