アイデンティティフレームワークで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を使用する必要があります。
私はそれを見つけた! @ジェームズは私に機能する記事を提案した。
手順:
次のコードをコンソールマネージャーに入力します。
Enable-Migrations
ソース: blogs.msdn.com
クラスApplicationUser
に、必要なプロパティを追加します。
public DateTime? Birthdate { get; set; }
コンソールマネージャーで次のコードを入力します。
Add-Migration "Birthdate"
このコードでデータベースを更新した後:
Update-Database
結果:新しい列がデータベースの「名前」「誕生日」に追加され、nullの可能性があるdatetime
が入力されます。
「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}