Entity framework 为EF4中的表|列名指定其他名称

Entity framework 为EF4中的表|列名指定其他名称,entity-framework,entity-framework-4,Entity Framework,Entity Framework 4,我将EF4与CodeFirst一起使用 public class People : DbContext { public DbSet<Human> Humans { get; set; } public DbSet<Child> Children { get; set; } } 公共类人员:DbContext { 公共数据库集{get;set;} 公共DbSet子项{get;set;} } 目前,EF在数据库中查找Human表。如何指定它查找人类?您可

我将EF4与CodeFirst一起使用

public class People : DbContext
{
    public DbSet<Human> Humans { get; set; }
    public DbSet<Child> Children { get; set; }
}
公共类人员:DbContext
{
公共数据库集{get;set;}
公共DbSet子项{get;set;}
}

目前,EF在数据库中查找
Human
表。如何指定它查找
人类

您可以在
人类
类中更改表名:

[Table("Humans")]
public class Human
{
    ...
}
另一种方法是使用Fluent API:

modelBuilder.Entity<Human>()
    .ToTable("Humans");
modelBuilder.Entity()
.ToTable(“人类”);

类似地,您可以使用
ColumnAttribute
HasColumnName
方法更改列的名称

非常有用!在每次迁移创建时,我都会手动修复这些问题。我只想指出,模型构建只对给定DbContext派生类的第一个实例执行。然后缓存它以备将来使用。因此,“MyDbContext.OnModelCreating()”(通常进行流畅的上下文配置)在应用程序中只调用一次。-这将防止为DbContext的每个实例使用真正的动态表名。-我写这篇文章是因为我发现了艰难的道路。可能会让人头疼:)