5

我想我的舊應用程序遷移到新的EF核心,但我無法找到像一些關係:WithOptional實體框架核心

HasRequired(o => o.Document).WithOptional(o => o.CancelNote); 

有一些擴展方法?我找不到文檔。

HasRequired我認爲可以用HasOne()替代方法,但WithOptional()怎麼樣?

其他的事情,根據docs該實體沒有使用關鍵字virtual來創建導航屬性,懶惰負載將如何工作?

回答

9

在EF7中找不到等效方法HasOptional。按照慣例,如果您的FK屬性是nullable,你的導航屬性將被視爲可選

modelBuilder.Entity<Blog>() 
       .HasOne(p => p.Document) 
       .WithOne(i => i.CancelNote) 
       .HasForeignKey<Document>(b => b.CancelNoteForeignKey); 

關於你的第二個問題,EF核心(EF7)不支持延遲加載。在這個link你會發現你現在必須加載相關實體

+0

但我的FK屬性文件實體的選項:*公共虛擬文獻文件{獲取;集;} *這個屬性可爲空? – gog

+0

不,你指出的是導航屬性,你的FK屬性應該是:'public int? CancelNoteForeignKey {獲得;設置;}' – octavioccl