有没有办法让类名与您的表名不同?

时间:2014-10-06 15:42:03

标签: entity-framework asp.net-web-api

我们正在使用几年前创建的数据库,并希望保持表名相同。

我们所有的表都命名为:" tbl_Orders"但是我们希望模型/控制器/等的类名是Orders / OrdersController /等。我们使用Entity Framework将类映射到我们的表。

很抱歉,如果以前曾经问过这个问题,我会尝试搜索但空手而归...

解决方案:

经过与Scott Chamberlain的一些反复讨论,我们得出结论,两个答案都是正确的。我继续把马苏德的答案标记为已被接受,因为那是我去的路线。感谢所有帮助过的人(尤其是斯科特)。

2 个答案:

答案 0 :(得分:7)

您可以使用Table属性或fluent api在数据库中的表名和类名之间进行映射

[Table("tbl_Blogs")] 
public class Blog

答案 1 :(得分:4)

您可以在DbContext中使用以下代码将所有实体映射到表格中:

protected override void OnModelCreating(DbModelBuilder modelBuilder)
{
   // TableNameConvention
     modelBuilder.Types()
                 .Configure(entity => 
                            entity.ToTable("tbl_" + entity.ClrType.Name));

     base.OnModelCreating(modelBuilder);
}