virtual
在EF 中从未 。仅当您需要延迟加载支持时才需要它。
由于EF Core尚不支持延迟加载,因此目前virtual
没有特殊含义。他们将在何时(以及是否)添加延迟加载支持(有这样做的计划)。
从EF Core 2.1开始,现在支持延迟加载。但是,只要您不添加Microsoft.EntityFrameworkCore.Proxies包并通过启用它UseLazyLoadingProxies
,原始答案仍然适用。
但是,如果这样做,由于在最初的实现中缺少选择加入控件,情况将完全改变-它 要求 导航属性virtual
。对我来说这是没有意义的,您最好在修复之前不要使用它。如果您确实需要延迟加载,请使用替代的不使用代理的延迟加载方法,在这种情况下,virtual
也不再重要。