在 Entity Framework 中从 ObjectContext 迁移到 DbContext 时的部分代码放置策略

Code placement strategy for partials for when migrating from ObjectContext to DbContext in Entity Framework

我有一个比较旧的 ASP.NET 项目,我正在从 MVC3/EF43 更新到 MVC5/EF6。

MVC 部分非常成功。

但是,EF 部分不是很好,我正在寻找自定义部分的代码放置策略 类,以便生成的代码不会覆盖我的自定义代码。

在 EF43 下,项目首先使用数据库和 T4 模板,以及 ObjectContext。对于我给定的 Models/Model1.edmx 和关联的 Models/Model1.tt,所有代码之前都已生成到 Models/Model1.cs.

在迁移到 EF6 并继续使用数据库优先和 T4 模板的过程中,我决定迁移到 DbContext。一个副作用是我现在有一个 Models/Model1.Context.tt 和一个 'Models/Model1.Context.csand individual files have been written intoModels` 对于 .edmx 中的每个模型,覆盖以前声明的部分 类 与生成的 POCO。

我需要采取一种策略,使生成的 POCO 不会覆盖我的部分,并且正在寻找解决方案。

我采用的策略是将我的部分重命名为 Models/<Model>.Partial.cs,但保持原始文件(相对)不变。

这允许生成的 POCO 和我的部分存在于同一目录中。

因为生成的 POCO 覆盖了我的局部模型,我关闭了 VS,通过 Git 恢复了所有被覆盖的模型,并重命名了它们。然后我能够重新启动 VS,并保存 .edmx 以重新生成 POCO。我还必须包含重命名的文件,因为它们是在 VS 之外重命名的。 VS 将阻止重命名 POCO 文件,如果它们包含在 .edmx 文件下。