web-dev-qa-db-ja.com

ASP.NET IDを持つテーブルに列を追加する

アイデンティティフレームワークでASP.NET MVCプロジェクトを作成しました。彼は新しいテーブルAspNetUsersを作成しましたが、誕生日、プロフィール写真などの列をそのテーブルに追加したいのですが、どうすればよいですか?

SQL Server Management Studioで以下のクエリを実行できますか?

ALTER TABLE AspNetUsers ADD ProfilePicture NVARCHAR(100);
ALTER TABLE AspNetUsers ADD BirthDay DATE;

それとももっと複雑ですか? IDフレームワークを使用できないため、ADO.NETおよび.NETフレームワーク4を使用する必要があります。

11
H. Pauwelyn

私はそれを見つけた! @ジェームズは私に機能する記事を提案した。

手順:

  1. 次のコードをコンソールマネージャーに入力します。

    Enable-Migrations
    

    ソース: blogs.msdn.com

  2. クラスApplicationUserに、必要なプロパティを追加します。

    public DateTime? Birthdate { get; set; }
    
  3. コンソールマネージャーで次のコードを入力します。

    Add-Migration "Birthdate"
    
  4. このコードでデータベースを更新した後:

    Update-Database
    

結果:新しい列がデータベースの「名前」「誕生日」に追加され、nullの可能性があるdatetimeが入力されます。

18
H. Pauwelyn

「FirstName」という名前の新しい列を追加するとします:

ステップ1:Models/IdentityModels.cs

次のコードを「ApplicationUser」クラスに追加します。

public string FirstName { get; set; }

ステップ2:Models/AccountViewModels.cs

「RegisterViewModel」クラスに次のコードを追加します。

public string FirstName { get; set; }

ステップ3:Views/Register.cshtml

FirstName入力テキストボックスをビューに追加します。

<div class="form-group">
        @Html.LabelFor(m => m.FirstName, new { @class = "col-md-2 control-label" })
        <div class="col-md-10">
            @Html.TextBoxFor(m => m.FirstName, new { @class = "form-control" })
        </div>
</div>

ステップ4:

[ツール]> [NuGet Manager]> [Package Manager Console]に移動します

ステップA:「Enable-Migrations」と入力し、Enterキーを押します
ステップB:「Add-Migration "FirstName"」と入力し、Enterキーを押します
ステップC:「Update-Database」と入力してEnterキーを押します
すなわち

PM> Enable-Migrations
PM> Add-Migration "FirstName"
PM> Update-Database

ステップ5:Controllers/AccountController.cs

アクションの登録に移動し、「FirstName = model.FirstName」をApplicationUserに追加します。

var user = new ApplicationUser { UserName = model.Email, Email = model.Email, FirstName = model.FirstName}
12
Adrita Sharma