Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/entity-framework/4.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# 更改实体类中字段的名称_C#_Entity Framework - Fatal编程技术网

C# 更改实体类中字段的名称

C# 更改实体类中字段的名称,c#,entity-framework,C#,Entity Framework,在DB(我不能修改)中有一个Tax表,其中一列也称为Tax。当为该表创建实体类时,我将有一个类名Tax和一个类变量Tax。显然,这是行不通的。如何更改类变量的名称,以便Entity Framework仍将其映射到正确的列?您的DbContext可以重写。如果您的类或表不符合以下要求,则使用此方法 其中一个偏差是,如果表不是DbSet中实体的复数,或者实体中的属性不是表中列的名称 因此,您有一个表Tax,其中列Tax表示一个金额 创建一个类Tax,该类表示表Tax,而属性Value表示列Tax中

在DB(我不能修改)中有一个Tax表,其中一列也称为Tax。当为该表创建实体类时,我将有一个类名Tax和一个类变量Tax。显然,这是行不通的。如何更改类变量的名称,以便Entity Framework仍将其映射到正确的列?

您的DbContext可以重写。如果您的类或表不符合以下要求,则使用此方法

其中一个偏差是,如果表不是DbSet中实体的复数,或者实体中的属性不是表中列的名称

  • 因此,您有一个表Tax,其中列Tax表示一个金额
  • 创建一个类
    Tax
    ,该类表示表Tax,而属性
    Value
    表示列Tax中的值
以及您的数据库上下文:

    class MyDbContext : DbContext
    {
        public DbSet<Tax> Taxes {get; set;}
        ...
    }

您可以在创建类时添加属性

可以为每个属性添加表名和克隆名

比如说

[Table("youtTableName")]
public class Tax
{
    [column("yourColumnName")]
    public int TaxId {get;set;}
}
protected override void OnModelCreating (System.Data.Entity.DbModelBuilder modelBuilder)
{
    const string taxesTableName = "Tax";
    const string valueColumnName = "Tax";

    modelBuilder.Entity<Tax>().ToTable(taxesTableName);
    modelBuilder.Entity<Tax>().Property(tax => tax.Value).HasColumnName(valueColumnName);
[Table("youtTableName")]
public class Tax
{
    [column("yourColumnName")]
    public int TaxId {get;set;}
}