gpt4 book ai didi

entity-framework-4 - virtual 关键字在 Entity Framework 4.1 POCO Code First 中可以产生什么效果?

转载 作者:行者123 更新时间:2023-12-03 04:08:01 25 4
gpt4 key购买 nike

virtual 关键字在 EF Code First 中的属性上使用时是否有效?有人可以描述它在不同情况下的所有后果吗?

例如,我知道它可以控制 lazy loading -- 如果您在 ICollection/一对多关系属性上使用 virtual 关键字,则默认情况下它将是延迟加载的,而如果您不使用 virtual 关键字,它将是急切加载的。

virtual 关键字在带有 POCO 实体的 EF 中还能产生哪些其他影响?我应该在我的所有属性上默认使用virtual,还是默认不使用它?

最佳答案

到目前为止,我知道这些影响。

  • Lazy Loading :任何virtual ICollections 将是延迟加载的,除非您特别标记它们。
  • More efficient change tracking 。如果您满足以下所有要求,那么您的更改跟踪可以通过 Hook 虚拟属性来使用更有效的方法。来自链接:

    To get change tracking proxies, the basic rule is that your class must be public, non-abstract or non-sealed. Your class must also implement public virtual getters/setters for all properties that are persisted. Finally, you must declare collection based relationship navigation properties as ICollection<T> only. They cannot be a concrete implementation or another interface that derives from ICollection<T> (a difference from the Deferred Loading proxy)

描述这一点的另一个有用链接是 MSDN 的 Requirements for Creating POCO Proxies .

关于entity-framework-4 - virtual 关键字在 Entity Framework 4.1 POCO Code First 中可以产生什么效果?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5597760/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com