Entity Framework 6.0不会为表字段自动生成“On Changing”或“On Change”部分方法

时间:2013-12-31 18:57:09

标签: entity-framework-6

我正在从SQL Server表生成实体框架类。但是我没有看到如下例子的部分方法:

partial void OnFirstNameChanging(global::System.String value);
partial void OnFirstNameChanged();

我正在使用VS2012& EF6.0。许多在线示例讨论了在新创建的部分类中过度消除这些部分方法以放置验证逻辑。但我在自动生成的代码中找不到这些方法。这是在EF6.0中手动添加的吗?将欣赏反馈。感谢。

1 个答案:

答案 0 :(得分:2)

您使用的是错误的发电机。这些方法仅由基于EntityObject的生成器(不推荐使用的生成器)生成。默认生成器使用POCO类,其中不生成这些部分方法 - 您可以修改生成器以添加它们(它是T4模板)。

使用EntityObject生成器:

  • 删除堆叠在EDMX下的当前.tt文件。
  • 打开EDMX,右键单击设计器,然后从上下文菜单中选择添加代码生成项
  • 如果在 Visual C#Items 中没有看到 EF 6.x EntityObject Generator ,请选择 Online 并搜索此生成器。
  • 安装发电机并使用它。
  • 现在,您生成的实体应该支持这些部分方法。

打开.tt文件并搜索更改已更改的字会让您了解在将这些方法添加到POCO生成器时需要做些什么。