2017-05-10 7 views
1

私はコードファーストアプローチでEntity Frameworkの自動移行を使用しています。 パケットマネージャコンソールを使用せず、コード化された移行にアクセスできない。C#Entity Framework:自動移行を使用してデータを失うことなくテーブルフィールドの名前を変更

私はここに私のモデルでは、私のテーブルを表す線を持っている:

 public virtual DbSet<Customer> Customers { get; set; } 

私は顧客のフィールドのいずれかに改名:

[Table("Customers")] 
public partial class Customer 
{ 
    [Key] 
    [Column(TypeName = "numeric")] 
    [DatabaseGenerated(DatabaseGeneratedOption.Identity)] 
    public int idCustomer { get; set; } 
    public string name { get; set; } 
    public int age { get; set; } 
    public string mail { get; set; } 
    public string password { get; set; } 
} 

私はちょうど「mailModified」に「メール」に変更。 しかし、データベースが更新されると、Entityはすべてのデータを名前フィールドから削除しました。 新しい名前で新しい列を作成するために列が削除されたと思います。

これを回避するにはどうすればよいですか?列の名前を変更するだけで彼を理解させるには?

あなたは、データが失われないように..移行コマンドを使用してそれをしなければならない任意の参加

+0

何を試しましたか? –

+0

コードベースの移行に頼る必要があるかもしれません。 – sachin

答えて

0

あなたのテーブルクラスを作成するときに列属性を使用してみてください

class Table 
{ 
    [Column("ColumnName")] 
    public int Column1 { get; set; } 
    [Column("ColumnName")] 
    public int Column2 { get; set; } 
} 
+0

うん、それは仕事の感謝の男をした – Elekk

2

ためのおかげで...

エルス

uが自動生成された上下に次のコードを追加することができます方法

RenameColumn("dbo.MyTable", "NewColumn", "OldColumn"); 
関連する問題