首先从现有数据库使用ef6代码时取消数据库表前缀

时间:2014-03-27 20:59:30

标签: c# entity-framework t4 entity-framework-6

我在数据库中有很多带有前缀“tbl”的表,比如tblCustomer,当使用EF6工具生成模型时(添加 - > 新项 - > 数据 - > ADO.NET实体数据模型)并从数据库中选择代码优先,EF生成所有带有tbl的类作为前缀,如何编辑生成模板以取消这些前缀?

Rowan Miller在此帖Customizing ‘Reverse Engineer Code First’ In The EF Power Tools中解释了如何编辑这些生成模板,但不知道如何使用EF 6中的新整合工具

1 个答案:

答案 0 :(得分:1)

您可以更轻松地简单地更改类的名称并使用DataAnnotations(查找名为"表和列"的部分)在生成后映射到正确的表代码第一模型。

using System.ComponentModel.DataAnnotations;

[Table("tblMyModel")]
public class MyModel {
    public int ID {get; set;}
    //etc
}

或者您也可以使用FluentAPI。

protected override void OnModelCreating(DbModelBuilder modelBuilder) {
    modelBuilder.Entity<MyModel>()
        .ToTable("tblMyModel");
}

这当然对于大型表结构可能不实用,但它可以工作。

如果您想进入EF6提供的更高级选项,可以阅读Code First Conventions