entity-framework - 文本转换和查找实体复数(集合)

标签 entity-framework entity-framework-4 t4 css

如果我有一个 .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/

相关文章:

c# - Entity Framework 中的通用查询方法

c# - 在 T4 中使用项目引用作为程序集路径

javascript - T4 模板导入自己的命名空间

c# - 身份的双重外键困境

c# - 动态 LINQ GroupBy 多列

asp.net - 如何使用 Entity Framework 在 asp.net 中创建数据集并填充数据集

asp.net-mvc-3 - 即使文件不存在,MVC3/T4 自定义脚手架也会给出文件存在错误

mysql - 在 Visual Studio 2010 中将 MySQL 数据库与 Entity Framework 结合使用

sql - newid() 与 Entity Framework 6 Code First

entity-framework - Entity Framework 外键对象上的空引用