2015-02-12 53 views
4

數據庫在數據庫中包含x和y表,其中X是較高級別的分組,Y是產品的較低級別分組。不幸的是,X的對象在軟件的UI中被稱爲「Y」,而Y的對象被稱爲「X」。我需要在代碼中將x重命名爲y和y。 我需要遵循哪些步驟。我甚至想要更改列名稱,如果有必要我的意思是如果table1具有table1ID現在它必須是Table2ID,因爲Table1名稱將是table2。 那麼,我需要做些什麼來使這個成功在Sql中重命名錶並相應地在實體框架中(Db優先)

PS:我知道可能我可能會downvoted,但我不認爲這實際上是那麼容易,因爲它看起來至少對我來說。

+0

你試過updatin g數據庫,在模型設計器中打開EDMX,然後使用「從數據庫更新模型」功能? – rikitikitik 2015-02-12 07:42:01

+2

我不認爲這樣做會是因爲我們可能有存儲過程索引可能是引用這些表的外鍵。 – Vivekh 2015-02-12 07:46:37

回答

0

如果你想他們只是在代碼重新命名,並離開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; } 
}