如果我有一个 .tt 模板,我可以使用 entity.Name 写出实体的名称,例如:
foreach (EntityType entity in ItemCollection.GetItems<EntityType>().OrderBy(e => e.Name))
{;
WriteLine(entity.Name);
}
使用普通转换或 T4,如何写出实体集的实际名称? (例如,对于 Person,它可能是 Persons - 但也许我在设计器中将其更改为 People,所以我想要那个)。
谢谢!
理查德
最佳答案
我一直在寻找同一个问题的答案,发现它还不错。但是,无需获取 EntitySet 名称,使用相同的复数形式非常容易。
在您的文本模板中,大概在顶部,添加以下行:
<#@ assembly name="System.Data.Entity.Design" #>
<#@import namespace="System.Data.Entity.Design.PluralizationServices" #>
这允许您创建一个复数实例:
<# PluralizationService pluralizer = PluralizationService.CreateService(System.Globalization.CultureInfo.CurrentCulture); #>
然后要复数模板中的实体,只需使用:
<#=pluralizer.Pluralize(code.Escape(entity))#>
当然,您可以将 code.Escape(entity)
替换为存储实体名称的变量名称。
就是这样!
来源:
Are there any limitations on what libraries can be imported in a t4 template?
http://vthornheart.railsplayground.net/blog/archives/655
关于entity-framework - 文本转换和查找实体复数(集合),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6449192/