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