如何解决virtual 关键字在 Entity Framework 4.1 POCO Code First 中可以产生什么影响?
到目前为止,我知道这些影响。
-
延迟加载:任何
virtual
ICollections 都将被延迟加载,除非您特别标记它们。 -
更有效的变更跟踪。如果您满足以下所有要求,那么您的更改跟踪可以通过挂钩您的虚拟属性来使用更有效的方法。从链接:
要获得更改跟踪代理,基本规则是您的类必须是公开的、非抽象的或非密封的。您的类还必须为所有持久化的属性实现公共虚拟 getter/setter。最后,您必须将基于集合的关系导航属性声明为
ICollection<T>
only。它们不能是具体实现或派生自ICollection<T>
(与延迟加载代理不同)的另一个接口
解决方法
virtual
关键字在 EF Code First 中的属性上使用时是否有效?有人可以描述它在不同情况下的所有后果吗?
例如,我知道它可以控制延迟加载——如果您在 ICollection/一对多关系属性上使用 virtual 关键字,默认情况下它将延迟加载,而如果您不使用 virtual 关键字,它将急切地加载。
virtual
关键字在带有 POCO 实体的 EF 中还有哪些其他影响?我应该让它默认使用virtual
我的所有属性,还是默认不使用它?
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。