Entity framework Model.tt T4在没有外部类型集时不生成自定义枚举文件

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(右键单击>运行自定义工具)时,我希望创建一个文

我有一个Model.edmx文件,其中添加了一个自定义枚举类型(通过“转换为枚举”或“添加枚举类型”)。让我们将此枚举称为“MyEnum”

我在此枚举中添加了一些成员:

  • 我的会员
  • 我的会员二
  • 我的会员三
错误地,我检查
引用外部类型
并将其设置为某个值,比如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>