Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/256.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# 在Sql中重命名表,并相应地在实体框架中重命名(Db优先)_C#_Sql Server_Entity Framework - Fatal编程技术网

C# 在Sql中重命名表,并相应地在实体框架中重命名(Db优先)

C# 在Sql中重命名表,并相应地在实体框架中重命名(Db优先),c#,sql-server,entity-framework,C#,Sql Server,Entity Framework,数据库中有x和y表,x是产品的高级分组,y是产品的低级分组。不幸的是,X的对象在软件的UI中被称为“Y”,Y的对象被称为“X”。我需要在代码中将X重命名为Y,将Y重命名为X。 我需要遵循哪些步骤。如果有必要,我甚至想更改列名。我的意思是,如果table1现在有table1ID,那么它必须是Table2ID,因为table1名称将是table2。 那么,我需要做些什么才能使这项工作取得成功呢 PS:我知道我可能会被否决,但至少在我看来,我并不认为这是一件容易的事。如果您只想在代码中重命名它们,并保

数据库中有x和y表,x是产品的高级分组,y是产品的低级分组。不幸的是,X的对象在软件的UI中被称为“Y”,Y的对象被称为“X”。我需要在代码中将X重命名为Y,将Y重命名为X。 我需要遵循哪些步骤。如果有必要,我甚至想更改列名。我的意思是,如果table1现在有table1ID,那么它必须是Table2ID,因为table1名称将是table2。 那么,我需要做些什么才能使这项工作取得成功呢


PS:我知道我可能会被否决,但至少在我看来,我并不认为这是一件容易的事。

如果您只想在代码中重命名它们,并保持db不变,只需更改实体类名和属性名:

您所描述的内容听起来好像您的类和属性与表的命名不同,如下所示:

[Table("X", Schema = "MYSCHEMA")]
public class Y
{
    [Column("X_ID"), Key]
    public int Y_ID { get; set; }

    public virtual List<X> X { get; set; }
}

[Table("Y", Schema = "MYSCHEMA")]
public class X
{
    [Column("Y_ID"), Key]
    public int X_ID { get; set; }

    [Column("X_ID"), Key]
    public int Y_ID { get; set; }

    [ForeignKey("X_ID")]
    public virtual Y Y { get; set; }
}
[Table("X", Schema = "MYSCHEMA")]
public class X
{
    [Column("X_ID"), Key]
    public int X_ID { get; set; }

    public virtual List<X> Y { get; set; }
}

[Table("Y", Schema = "MYSCHEMA")]
public class Y
{
    [Column("Y_ID"), Key]
    public int Y_ID { get; set; }

    [Column("X_ID"), Key]
    public int X_ID { get; set; }

    [ForeignKey("X_ID")]
    public virtual X X { get; set; }
}
[表(“X”,Schema=“MYSCHEMA”)]
公共Y类
{
[列(“X_ID”),键]
公共int Y_ID{get;set;}
公共虚拟列表X{get;set;}
}
[表(“Y”,Schema=“MYSCHEMA”)]
公共X类
{
[列(“Y_ID”),键]
公共int X_ID{get;set;}
[列(“X_ID”),键]
公共int Y_ID{get;set;}
[外键(“X_ID”)]
公共虚拟Y{get;set;}
}
您只需重命名类和属性以匹配表名和列名,如下所示:

[Table("X", Schema = "MYSCHEMA")]
public class Y
{
    [Column("X_ID"), Key]
    public int Y_ID { get; set; }

    public virtual List<X> X { get; set; }
}

[Table("Y", Schema = "MYSCHEMA")]
public class X
{
    [Column("Y_ID"), Key]
    public int X_ID { get; set; }

    [Column("X_ID"), Key]
    public int Y_ID { get; set; }

    [ForeignKey("X_ID")]
    public virtual Y Y { get; set; }
}
[Table("X", Schema = "MYSCHEMA")]
public class X
{
    [Column("X_ID"), Key]
    public int X_ID { get; set; }

    public virtual List<X> Y { get; set; }
}

[Table("Y", Schema = "MYSCHEMA")]
public class Y
{
    [Column("Y_ID"), Key]
    public int Y_ID { get; set; }

    [Column("X_ID"), Key]
    public int X_ID { get; set; }

    [ForeignKey("X_ID")]
    public virtual X X { get; set; }
}
[表(“X”,Schema=“MYSCHEMA”)]
公共X类
{
[列(“X_ID”),键]
公共int X_ID{get;set;}
公共虚拟列表Y{get;set;}
}
[表(“Y”,Schema=“MYSCHEMA”)]
公共Y类
{
[列(“Y_ID”),键]
公共int Y_ID{get;set;}
[列(“X_ID”),键]
公共int X_ID{get;set;}
[外键(“X_ID”)]
公共虚拟X{get;set;}
}

您是否尝试过更新数据库,在模型设计器中打开EDMX,然后使用“从数据库更新模型”功能?我不认为仅此一项就行,因为我们可能有引用这些表的存储过程索引或外键。