2016-07-25 1 views
-2

私はasp.netを学ぼうとしているので、私はVisual Studio> asp.netプロジェクト> mvcプロジェクトで取得する既定のプロジェクトを使用してプロジェクトを作成したいと思います。私はビットでそれをカスタマイズし、asp.netを学ぼうとします。どのようにデフォルトのasp.net mvcアプリケーションからデータベースの列を削除するには?

私はそれを実行してユーザーを登録し、データベースエクスプローラを開くことができました。ここには、私が必要としなかった "emailConfirmed"、 "TwoFactorAuth"などのコラムがたくさんあるので、それらを削除したかったのです。私はそれらをデータベース(localDB)から削除しましたが、無効な列名 "emailConfirmed"などのエラーが発生し続けます。どうすればそれらが完全に私のプロジェクトから完全になくなったかを確認できます。私は彼らがどこかのC#コードの中にいると信じていますが、私はどのファイルにいるのかわかりません。

また、私は非常に重要な質問をしています。おそらく非常にばかげた質問です。私のフォームを送信するたびに、データが対応するデータベース列に移動する必要があることを伝えるデフォルトプロジェクトのコードはどこにありますか?基本的には、SqlConnection conn = new SqlConnection(connectionString)などのコードはどこにありますか?

+0

列をそのままにします。あなたがそれらを使用したくない場合は、しないでください。それらを削除する理由はありません。 .Net Identityはデータベースコールを処理します。あなたはDB呼び出しを見て列を取り除く唯一の方法は、独自のUserStoreを実装するか、独自の認証システムを作成することです – Eonasdan

+0

ああ、私は参照してください。ありがとう。私はまた別の関連する質問があります。 Genderという別の列をデフォルトテーブルに追加し、ユーザーが登録ページにその情報を入力するために必要なテキストボックスを追加したとします。ここで、この情報がこのデータベースに戻ってくるはずのコードを変更しますか?今私が登録しようとすると、私のデータベースは電子メール、パスワードのようなデフォルト値を取得するだけです。 –

+0

下記の私の答えを参照してください。あなたが助けてくれたら、それをアップアップして受け入れてください。 – Eonasdan

答えて

0

カラムをそのまま残しておきます。あなたがそれらを使用したくない場合は、しないでください。それらを削除する理由はありません。 .Net Identityはデータベースコールを処理します。 DBコールを参照して列を削除する唯一の方法は、独自のUserStoreを実装するか、独自の認証システムを作成することです。あなたに

2番目の質問:

あなたはこのような/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; 
    } 
} 

そこからデータベースに変更をプッシュする新しいマイグレーションを作成する必要があります。実際には、データベースのスキーマ(列と表)を直接変更するべきではありません。コードの最初から行う必要があります。

関連する問題