Entity framework 实体框架-从导航属性中删除虚拟关键字

Entity framework 实体框架-从导航属性中删除虚拟关键字,entity-framework,entity,Entity Framework,Entity,我正在使用实体框架和数据库优先的方法,以及EF4.xDBContext生成器。所有我的实体类都有标记为“虚拟”的导航属性。我想从所有实体类中删除virtual关键字。大约有350个实体类删除虚拟将意味着您无法对实体框架使用延迟加载。在我看来,延迟加载的作用域非常有限,并且大部分被误用(这通常会导致性能问题)。但是请注意,当您将其关闭时,可能需要调整代码,以便在检索数据时手动加载其他导航属性。您可以使用。在EF查询中包含 要删除虚拟标志,您可能需要在EF生成器中禁用延迟加载。您必须修改T4模板(.

我正在使用实体框架和数据库优先的方法,以及EF4.xDBContext生成器。所有我的实体类都有标记为“虚拟”的导航属性。我想从所有实体类中删除virtual关键字。大约有350个实体类

删除虚拟将意味着您无法对实体框架使用延迟加载。在我看来,延迟加载的作用域非常有限,并且大部分被误用(这通常会导致性能问题)。但是请注意,当您将其关闭时,可能需要调整代码,以便在检索数据时手动加载其他导航属性。您可以使用。
在EF查询中包含


要删除虚拟标志,您可能需要在EF生成器中禁用延迟加载。

您必须修改T4模板(.tt)文件以删除虚拟关键字。

您可能希望尝试此VS扩展,它添加了(除其他外)对虚拟修改器的精细控制:

要修改哪个(.tt)文件以实现sameModel1.tt文件必须修改以实现相同的效果。从行号255中删除虚拟我正在使用VS2015,在哪里可以找到您谈论的文件Model1.tt或T4模板?禁用延迟加载不会从导航属性中删除“virtual”关键字。据我所知,“虚拟”也负责有效的变革tracking@user1373280虚拟也用于代理实体,但是这需要修饰实体上的所有属性,而不仅仅是导航属性。