2016-07-25 68 views
-2

我想學習asp.net,因此我想創建一個項目,使用默認項目,我們可以在visual studio> asp.net project> mvc項目中獲得。我會定製它,並嘗試學習asp.net。如何從默認的asp.net mvc應用程序中刪除數據庫列?

我運行它並註冊了一個用戶,然後我就可以打開數據庫瀏覽器。這裏有很多像「emailConfirmed」,「TwoFactorAuth」等欄目,我不需要,所以我想刪除它們。我從數據庫(localDB)中刪除了它們,但是我一直收到諸如無效列名稱「emailConfirmed」等錯誤。那麼,如何確保它們完全從我的項目中消失。我相信他們在某處存在一些C#代碼,但我不知道在哪個文件中。

而且我還有一個非常重要的問題,可能是一個非常愚蠢的問題。該默認項目中的代碼在哪裏告訴我每當我提交表單時,我的數據都應該進入相應的數據庫列?基本上我的意思是代碼說什麼,像SqlConnection conn = new SqlConnection(connectionString)

+0

只需離開列即可。如果你不想使用它們,不要。沒有理由刪除它們。 .Net Identity負責數據庫調用。要看到數據庫調用並擺脫列的唯一方法是實現自己的UserStore或創建自己的認證系統 – Eonasdan

+0

哦,我明白了。謝謝。我還有另一個相關的問題。假設我在默認表中添加了一個名爲Gender的列,並添加了必要的文本框供用戶在註冊頁面上輸入該信息。現在,我在哪裏更改說這個信息應該回到這個數據庫的代碼?因爲現在當我嘗試註冊時,我的數據庫只會提取電子郵件,密碼等默認值。 –

+0

請參閱下面的答案。如果它對您有幫助,請立即加入並接受它。 – Eonasdan

回答

0

只需離開列。如果你不想使用它們,不要。沒有理由刪除它們。 .Net Identity負責數據庫調用。要看到數據庫調用並擺脫列的唯一方法是實現自己的UserStore或創建自己的身份驗證系統。

要你的第二個問題:

您應該添加新的領域/Models/IdentityModels.cs這樣的:

public class ApplicationUser : IdentityUser 
{ 
    public string Gender { get; set; } 

    public async Task<ClaimsIdentity> GenerateUserIdentityAsync(UserManager<ApplicationUser> manager) 
    { 
     var userIdentity = await manager.CreateIdentityAsync(this, DefaultAuthenticationTypes.ApplicationCookie); 
     return userIdentity; 
    } 
} 

從那裏,你需要創建一個新的遷移將變更推到數據庫。您真的不應該直接修改數據庫模式(列和表),您應該從Code First執行此操作。

相關問題