如何自定义实体框架类?
Posted
技术标签:
【中文标题】如何自定义实体框架类?【英文标题】:How to customize Entity Framework classes? 【发布时间】:2010-09-07 13:16:03 【问题描述】:有没有办法接管实体框架类构建器?我希望能够拥有自己的类构建器,这样我就可以创建一些属性以在实现时调用其他方法或使实体类部分化。
【问题讨论】:
【参考方案1】:实际上他们已经在部分课程中。见MSDN
【讨论】:
【参考方案2】:System.Data.Entity.Design.EntityClassGenerator,是 VS 中用来从你的 .edmx 文件生成对象层的类型,它是 EdmGen.exe 用来从 .csdl 文件生成对象层的类型。下面我列出了可以影响生成代码的 3 种方式。第三个选项要求您自己调用 EntityClassGenerator。你可以让你的代码在 VS 中自动运行,类似于 Sanjay 提出的 using this technique 的 SingleFileGenerator。
-
通过部分类向类型添加代码
向生成的类调用的部分方法添加代码
挂钩代码生成事件,以便在生成属性和类型时将代码直接注入。以 Danny 的 blog post 为例
【讨论】:
【参考方案3】:我要补充一点,您不仅可以将自己的类部分类附加到实体框架发出的类中,还可以写出所有的部分方法 strong> 由生成的代码创建。
IE。会有很多部分方法代码被调用,但生成的代码中的方法本身并没有真正实现。为此,您可以编写一个部分方法来在属性更改等时捕获事件。这不是处理某些业务规则的糟糕方式。
【讨论】:
以上是关于如何自定义实体框架类?的主要内容,如果未能解决你的问题,请参考以下文章