首页 > 解决方案 > 实体框架 6:使用新实体实例创建更改跟踪代理,而无需通过 DbSet.Create 方法替换现有构造函数

问题描述

我们有一个现有的 WPF 应用程序,该应用程序以前是使用 DB-first 方法和旧版本的实体框架(带有对象上下文类)构建的。该应用程序的开发假设更改跟踪代理始终处于激活状态,因此更改导航属性会自动更新外键(ObjectContext 的默认行为)。

现在,我们正在迁移到 Entity Framework 6 并使用一个DbContext类。我们通过使所有属性虚拟化等来实现更改跟踪代理。唯一的问题是,当创建一个实体的新实例时,我们必须调用DbSet.Create方法来创建代理。但是我们已经在使用带参数的构造函数了,把几十个类的构造函数调用改成静态方法调用DbSet.Create会很长,很难做到。

在我们现在的情况下,还有其他更简单的方法来创建代理吗?

标签: c#entity-frameworkentity-framework-6dbcontextchange-tracking

解决方案


推荐阅读