C# T4模板将实体更改为内部实体

C# T4模板将实体更改为内部实体,c#,t4,C#,T4,在VisualStudio中,我有一个实体模型。出于某种原因,在生成DbContext时,其中一个实体显示为内部实体,而不是公共实体 internal DbSet<Company> Companies { get; set; } 内部数据库集公司{get;set;} 现在在properties窗口中,Access属性设置为Public。我试着来回切换,每次运行后手动运行T4模板,但它仍然作为内部模板运行 有人知道解决这个问题的方法吗?请确保在实体设计器中将该特定实体的Access

在VisualStudio中,我有一个实体模型。出于某种原因,在生成DbContext时,其中一个实体显示为内部实体,而不是公共实体

internal DbSet<Company> Companies { get; set; }
内部数据库集公司{get;set;}
现在在properties窗口中,Access属性设置为Public。我试着来回切换,每次运行后手动运行T4模板,但它仍然作为内部模板运行


有人知道解决这个问题的方法吗?

请确保在实体设计器中将该特定实体的
Access
属性设置为
Public


确保在实体设计器中将特定实体的
Access
属性设置为
Public


因此,在尝试了太久之后,我放弃了,并通过从数据库中提取模型来重建模型。我根本想不出这个问题。

所以在尝试了太长时间后,我放弃了,并通过从数据库中提取模型来重建模型。我根本无法理解这一点。

您是否尝试编辑t4模板本身?不,我没有编辑实际模板。我已经编辑了由它生成的代码,但是每次编辑edmx时都必须更改它是令人沮丧的。因此您有多个实体,并且只有一个实体出现在
Internal
?-这听起来不像是T4问题。这就是为什么我感到困惑的原因。我不确定模板是否错误,或者它是否是visual studio中的错误。没有EDMX生成器方面的专家,但查看T4代码,您可能只需更改方法:public string DbSet(EntitySet EntitySet)。或者调试T4以了解为什么它要将集合设置为内部。您是否尝试编辑T4模板本身?不,我没有编辑实际的模板。我已经编辑了由它生成的代码,但是每次编辑edmx时都必须更改它是令人沮丧的。因此您有多个实体,并且只有一个实体出现在
Internal
?-这听起来不像是T4问题。这就是为什么我感到困惑的原因。我不确定模板是否错误,或者它是否是visual studio中的错误。没有EDMX生成器方面的专家,但查看T4代码,您可能只需更改方法:public string DbSet(EntitySet EntitySet)。然后单击解决方案资源管理器中的“transform all templates”(转换所有模板)按钮。在我看来,这似乎没有任何效果。它将重新创建T4生成的所有代码。否则,正如其他人所提到的,您必须自己修改模板,但如果它仅发生在一个特定实体上,我怀疑这是一个模板问题。@DanChampagne然后点击解决方案资源管理器中的“转换所有模板”按钮。这似乎没有我看到的任何效果。它将重新创建所有T4生成的代码。否则,正如其他人提到的,您将不得不自己修改模板,但我怀疑这是一个模板问题,如果它只发生在一个特定的实体。