Entity framework 为EF4中的表|列名指定其他名称
我将EF4与CodeFirst一起使用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表。如何指定它查找人类?您可
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的每个实例使用真正的动态表名。-我写这篇文章是因为我发现了艰难的道路。可能会让人头疼:)