2015-08-31 13 views
0

我正在使用ASP.NET身份2與EF。在ASP.NET身份中,我有PhoneNumber屬性,在我的情況下(商業智慧)是手機號碼。但我也有用於辦公電話的電話號碼。現在我希望我的所有代碼都使用MobileNumber(移動設備)和PhoneNumber(辦公室)。我可以這樣做,How can I change the table names when using Visual Studio 2013 ASP.NET Identity?但在這種情況下,我需要更改屬性名稱。我想要更改屬性名稱以及數據庫列名稱。將PhoneNumber重命名爲MobileNumber,並將PhoneNumber作爲附加列使用?

回答

2

只需重命名班級的屬性即可。創建EF遷移。最有可能的是,它將刪除您嘗試重命名的現有列並添加一個新列。替換RenameColumn("dbo.MyTableName", "OldColumnName", "NewColumnName");

+0

的問題是,該屬性由框架使用。我可以在數據庫中更改,但不能上課。 – user960567

+0

通過身份框架?它會處理這個變化。 – trailmax

+0

怎麼樣?框架如何知道他必須使用MobileNumber屬性而不是PhoneNumber?請記住它在基礎標識類中的定義。 – user960567

2

,移民代碼,你可以繼承IdentityUser類模型和新屬性添加到它

public class User : IdentityUser 
{ 
    public string MobileNumber { get; set; } 

} 

,並在數據庫中重命名列中使用此代碼

protected override void OnModelCreating(DbModelBuilder builder) 
{ 
    builder.Entity<User>() 
     .Property(u => u.PhoneNumber) 
     .HasColumnName("NewName"); 
} 
相關問題