C#EFCodeFirst虚拟关键字,它有什么作用?为什么在声明导航属性时需要使用“virtual”关键字?我知道CodeFirst框架以某种方式使用它来识别属性是导航属性,但我想知道如何。具体来说,我想知道它与MSDN文档中“virtual”关键字的描述有何关系:http://msdn.microsoft.com/en-us/library/9fkccyh4(v=vs.80)。Aspx在运行时,EntityFramework会为你生成所谓的代理实体。这些实体是从您的实体类型派生的动态创建类型的对象。这允许您将实体用作POCO,这是一个与实体框架无关的简单对象,因为它不继承自EntityObject。在运行时,动态创建的实体类型继承自您的POCO并覆盖所有虚拟属性以添加允许在属性获取器中延迟加载的实体框架内容。延迟加载是一个复杂的过程,需要您的代码知道数据是如何从数据库中获取的。由于您不希望域类了解数据库和EF内容,您可以从EF中抽象实体并添加虚拟属性,因此EF可以覆盖底层POCO并在运行时添加DB相关内容。更改跟踪也是如此。添加虚拟允许EF生成一个派生类来覆盖该属性并从数据库返回一个集合。以上就是C#学习教程:C#EFCodeFirst虚关键字,有什么作用?如果所有分享的内容对你有用,需要进一步了解C#学习教程,希望大家多多关注。本文收集自网络,不代表立场。如涉及侵权,请点击右侧联系管理员删除。如需转载请注明出处:
