实体框架6.0不会自动生成表字段的“更改”或“更改”部分方法 [英] Entity Framework 6.0 not auto-generating 'On Changing' or 'On Change' partial methods for table fields
问题描述
partial void OnFirstNameChanging(global :: System.String value);
partial void OnFirstNameChanged();
我正在使用VS2012& EF6.0。许多在线示例谈到了在新创建的部分类中将这些部分方法重新排除以放置验证逻辑。但是我在自动生成的代码中找不到这些方法。这是在EF6.0手动添加的东西吗?会欣赏反馈。谢谢。
你使用错误的生成器。这些方法只能由基于 EntityObject
的生成器(不推荐使用的)生成。默认生成器使用不生成这些部分方法的POCO类 - 您可以修改生成器以添加它们(它是T4模板)。
要使用 EntityObject
生成器:
- 删除EDMX下堆叠的当前.tt文件。
- 打开EDMX,右键点击设计器,然后从上下文菜单中选择添加代码生成项目。
- 如果在 Visual C#项目中没有看到EF 6.x EntityObject Generator ,请选择在线并搜索此生成器。
- 安装发电机并使用它。
- 现在您生成的实体应该支持这些部分方法。
打开.tt文件并进行搜索对于更改和已更改的单词将给您并想出在将这些方法添加到POCO生成器时需要做什么。
I am generating entity framework classes from a SQL Server table. However I am not seeing the partial methods like the example below:
partial void OnFirstNameChanging(global::System.String value);
partial void OnFirstNameChanged();
I am using VS2012 & EF6.0. Many online examples talks about over-ridding these partial methods in newly created partial classes to put validation logic. But I can't find these methods in my auto-generated code. Is this something that's manually added in EF6.0? Will appreciate feedback. Thanks.
You are using wrong generator. Those methods are only generated by EntityObject
based generator (the one which is deprecated). Default generator uses POCO classes where these partial methods are not generated - you can modify the generator to add them (it is a T4 template).
To use EntityObject
generator:
- Delete current .tt file stacked under your EDMX.
- Open EDMX, right click in the designer and select Add code generation item from context menu.
- If you don't see EF 6.x EntityObject Generator in Visual C# Items select Online and search for this generator.
- Install the generator and use it.
- Now your generated entities should support those partial methods.
Opening .tt file and searching for Changing and Changed words will give you and idea what is necessary to do in case of adding those methods to POCO generator.
这篇关于实体框架6.0不会自动生成表字段的“更改”或“更改”部分方法的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!