提前感謝您的幫助。 我對使用include()
方法實體框架6時發生的情況有些困惑。 據我所知,包含對象爲NULL
時的包含方法爲LEFT JOIN
,當對象匹配時爲OUTER JOIN
。Include()不能用作LEFT JOIN(實體框架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
。
有人可以向我解釋這一點,並給我一個可能的解決方案,這種情況?
謝謝。
在預訂類,你應該把'[ForeignKey的(「SourceBookingId」)上面的'SourceBooking財產 – OrcusZ
好了,但它確實沒有解決我的問題。 –
我怎樣才能使用Fluent API建立同樣的關係? –