Entity framework Model.tt T4在没有外部类型集时不生成自定义枚举文件
我有一个Model.edmx文件,其中添加了一个自定义枚举类型(通过“转换为枚举”或“添加枚举类型”)。让我们将此枚举称为“MyEnum” 我在此枚举中添加了一些成员:Entity framework Model.tt T4在没有外部类型集时不生成自定义枚举文件,entity-framework,entity-framework-6,t4,ef-database-first,Entity Framework,Entity Framework 6,T4,Ef Database First,我有一个Model.edmx文件,其中添加了一个自定义枚举类型(通过“转换为枚举”或“添加枚举类型”)。让我们将此枚举称为“MyEnum” 我在此枚举中添加了一些成员: 我的会员 我的会员二 我的会员三 错误地,我检查引用外部类型并将其设置为某个值,比如MyExternalEnum,然后保存edmx。 然后我意识到这不是我想要的,所以我编辑枚举(右键单击>编辑),取消选中引用外部类型,单击确定,然后再次保存。 当我执行自动生成的Model.tt(右键单击>运行自定义工具)时,我希望创建一个文
- 我的会员
- 我的会员二
- 我的会员三
引用外部类型
并将其设置为某个值,比如MyExternalEnum,然后保存edmx。
然后我意识到这不是我想要的,所以我编辑枚举(右键单击>编辑),取消选中引用外部类型
,单击确定
,然后再次保存。
当我执行自动生成的Model.tt(右键单击>运行自定义工具)时,我希望创建一个文件MyEnum.cs
事实并非如此
仔细检查参考外部类型
是否未勾选不会产生任何结果
为什么??什么是hapenning?我在xml文本编辑器中查看Model.edmx,发现MyEnum的编码如下:
<EnumType Name="MyEnum" a:ExternalTypeName="" xmlns:a="http://schemas.microsoft.com/ado/2006/04/codegeneration" >
<Member Name="MyMemberOne" />
<Member Name="MyMemberTwo" />
<Member Name="MyMemberThree" />
</EnumType>
我没有在模型中看到任何东西。tt暗示了为什么会存在这种行为,也没有暗示它是否是有意的(但我高度怀疑它…)
我希望在那里的某个地方有一个if(ExternalTypeName!=null)//不要生成文件
,而不是if(ExternalTypeName!=null&&ExternalTypeName!=String.Empty)
,但实际的错误并不容易发现
<EnumType Name="MyEnum"> <!-- This is ok -->
<Member Name="MyMemberOne" />
<Member Name="MyMemberTwo" />
<Member Name="MyMemberThree" />
</EnumType>