在命名数据库表时,我更喜欢使用单数名词。然而,在 EF 代码优先中,生成的表始终是复数。我的 DbSet 是复数的,我相信这是 EF 生成名称的地方,但我不想将这些名称单数化,因为我相信在代码中使用复数名称更实用。我也尝试过覆盖该设置但无济于事。
有任何想法吗?这是我的代码,谢谢。
ObjectContext.vs
public class MyObjectContext : DbContext, IDbContext
{
public MyObjectContext(string connString) : base(connString)
{
}
public DbSet<Product> Products {get;set;}
public DbSet<Category> Categories {get;set;}
//etc.
protected override void OnModelCreating(ModelBuilder modelBuilder)
{
modelBuilder.Conventions.Remove<PluralizingEntitySetNameConvention>();
}
}
您删除了错误的约定(复数 EntitySetName 约定) 以此目的。只需更换你的模型创建时按照下面的方法,你就可以开始了。
using System.Data.Entity.ModelConfiguration.Conventions.Edm.Db;
...
protected override void OnModelCreating(ModelBuilder modelBuilder)
{
modelBuilder.Conventions.Remove<PluralizingTableNameConvention>();
}
对于 Entity Framework 6,在从 DbContext 继承的文件上:
using System.Data.Entity.ModelConfiguration.Conventions;
protected override void OnModelCreating(DbModelBuilder modelBuilder)
{
modelBuilder.Conventions.Remove<PluralizingTableNameConvention>();
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)