Visual studio 实体框架:为什么模板不再生成“实体框架”;。designer.cs“;源文件
Entity Framework 3.5/4.0中的默认类型生成会发出“Xxxx.designer.cs”源文件中的每个类型(其中“Xxxx”是正在生成的类型的名称)。这样,开发人员就可以生成自己的“Xxxx.cs”源文件,以便进一步实现,或者将属性添加到元数据类等 提供的最新T4模板(POCO、自跟踪等),包括VS2012中的默认类型生成,所有genrate“Xxxx.cs”本身都没有“.designer”后缀 我知道很容易覆盖T4模板的行为,在文件名中发出“.designer”,但我是否遗漏了一些事实,我们实际上不希望通过部分定义扩展这些类 在最近一个生成自跟踪实体的项目中,我发现必须重命名发出的文件,以便使用元数据类属性以及.Equals(object)和.GetHashcode()的重写来扩展定义(否则EF无法正确检测重复项)Visual studio 实体框架:为什么模板不再生成“实体框架”;。designer.cs“;源文件,visual-studio,entity-framework,visual-studio-2012,t4,Visual Studio,Entity Framework,Visual Studio 2012,T4,Entity Framework 3.5/4.0中的默认类型生成会发出“Xxxx.designer.cs”源文件中的每个类型(其中“Xxxx”是正在生成的类型的名称)。这样,开发人员就可以生成自己的“Xxxx.cs”源文件,以便进一步实现,或者将属性添加到元数据类等 提供的最新T4模板(POCO、自跟踪等),包括VS2012中的默认类型生成,所有genrate“Xxxx.cs”本身都没有“.designer”后缀 我知道很容易覆盖T4模板的行为,在文件名中发出“.designer”,但我是否遗漏
我是否错过了我们现在希望保留发出的部分类的地方,或者这仅仅是一个疏忽,你们大多数人也必须重命名发出的源文件?代码生成策略在VS2012中发生了变化。之前,生成的代码使用基于EntityObject的实体和从ObjectContext类派生的上下文类。默认情况下,VS2012生成POCO实体和DbContext定义的上下文。如果仍然需要基于ObjectContext的上下文和基于EntityObject的实体,则需要:
我想你可能误解了这个问题。我不是在尝试恢复ObjectContext,我是在问为什么源文件命名策略已更改为不再包含“.designer”。是的,显然误解了这个问题。这些文件不再由设计器生成(注意代码生成策略设置为“无”),而是由调用T4模板处理的VS生成。T4 processor创建一个与正在处理的T4模板同名的文件。您可以尝试重命名T4文件-如果您这样做,您可能需要重命名edmx文件(我对此不确定)。进行此重命名并不是为了阻止扩展生成的类;这是我想说的最后一点。我知道我可以通过编辑T4模板来重命名生成的源文件(我已经多次这样做了)——我只是想知道我现在是否违背了规则。