Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/291.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 首先从现有数据库中使用ef6代码时,请去掉数据库表前缀_C#_Entity Framework_T4_Entity Framework 6 - Fatal编程技术网

C# 首先从现有数据库中使用ef6代码时,请去掉数据库表前缀

C# 首先从现有数据库中使用ef6代码时,请去掉数据库表前缀,c#,entity-framework,t4,entity-framework-6,C#,Entity Framework,T4,Entity Framework 6,我的数据库中有很多前缀为“tbl”的表,比如tblCustomer,当使用EF6工具生成模型时(添加->新项->数据->

我的数据库中有很多前缀为“tbl”的表,比如tblCustomer,当使用EF6工具生成模型时(添加->新项->数据->),并首先从数据库中选择代码,EF生成以tbl为前缀的所有类,如何编辑生成模板以去掉这些前缀


Rowan Miller在这篇文章中解释了如何编辑这些生成模板,但不知道如何使用EF 6中的新整合工具来编辑这些模板。您可能更容易更改类的名称并使用(请查看名为“表和列”的部分)在生成代码优先模型后映射到正确的表

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");
}
模型创建时受保护的覆盖无效(DbModelBuilder modelBuilder){
modelBuilder.Entity()
.ToTable(“tblMyModel”);
}
当然,这对于大型表结构可能不实用,但它会起作用


如果您想尝试EF6提供的更高级选项,您可以阅读。

记住。。如果数据库中的每个表都以
tbl
开头,这与没有任何表以
tbl
@paqogomez开头是一样的,但并非所有的表都有前缀,代码根本不可读(我的意思是,客户比tblCustomer更可读,我认为这是自然的方式),最终我们可以在另一个数据库中使用该模型最终这就是我到目前为止一直在做的事情,但是当你有200个表时就不那么容易了,因为不仅仅是类名,在引用该类的所有配置文件中,以及在对象之间的所有关系中