复数表名是 EF 中的默认约定。但不幸的是,当我添加前缀后,我无法再使用复数名称。有任何想法吗?
protected override void OnModelCreating(DbModelBuilder modelBuilder) {
modelBuilder.Types()
.Configure(entity => entity.ToTable("MyPrefix_" + entity.ClrType.Name));
modelBuilder.Conventions.Add<PluralizingTableNameConvention>();
base.OnModelCreating(modelBuilder);
}
The 复数表名约定 uses a 多元化服务可以在任何地方使用。因此您可以继续在配置代码中使用它。
下面是一个使用模型“Person”的示例,该模型应复数形式为“People”:
public DbSet<Person> Persons { get; set; }
protected override void OnModelCreating(System.Data.Entity.DbModelBuilder modelBuilder)
{
var serv = PluralizationService.CreateService(new System.Globalization.CultureInfo("en-us"));
modelBuilder.Types()
.Configure(entity => entity.ToTable("MyPrefix_" + serv.Pluralize(entity.ClrType.Name)));
modelBuilder.Conventions.Remove<PluralizingTableNameConvention>();
base.OnModelCreating(modelBuilder);
}
运行此代码后,它将正确地将数据库中的 Persons 模型复数为“MyPrefix_People”。
要使用 PluralizationService,您必须引用System.Data.Entity.Design
集会。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)