Entity Framework 3.5/4.0 中的默认类型生成会发出“Xxxx.designer.cs”源文件中的每个类型(其中“Xxxx”是正在生成的类型的名称)。然后,这允许开发人员生成他自己的“Xxxx.cs”源文件,在那里可以进行进一步的实现,或者可以将属性添加到元数据类等。
最新发布的 T4 模板(POCO、Self Tracking 等),包括 VS2012 中的默认类型生成,都在没有“.designer”后缀的情况下自行生成“Xxxx.cs”。
我知道覆盖 T4 模板的行为以在文件名中发出“.designer”是很容易的,但是我是否在这里遗漏了一些东西,实际上我们不鼓励通过部分定义来扩展这些类?
在我最近生成自我跟踪实体的项目中,我发现我必须重命名发出的文件,以便我可以使用元数据类属性以及 .Equals(object) 和 .GetHashcode() 的覆盖来扩展定义(否则 EF无法正确检测重复)例如。
有没有我遗漏的东西,我们现在应该将发出的部分类保留原样,或者这仅仅是一个疏忽,你们中的大多数人还必须重命名正在发出的源文件吗?