質問: ### 前提・実現したいこと Visual studio 2013 for webで開発をしております。 VB/C#いずれでもかまいません。 新しくMVC5アプリケーションをテンプレートから生成したあと、 ApplicationUserManager(UserManager)が定義されると思います。 標準ではデータベースファイルが作成され、そこにデータが収まっていくと おもうのですが(標準で自動生成されるカラム群は以下が参照可能) http://qiita.com/standtsukai/items/056e422bed8a57467778 以下を行いたく存じます: 1)この標準状態に、「ID_NUM」を追加する。 IDはハッシュ値が登録されるので、ID_NUMに、 連番属性(TransactSQL:Identity,MySQL:AUTO_INCREMENT,PGSQL:SERIAL)と同様の定義を 行ったうえでコードに含めたい。 (このときの回答で、事前に上記DBモデルに一列足し属性を加えてCreate/alter TableしておくはNGとします) 条件は初回ビルド後デバッグ起動時またはデータベースが自動で構築される際、当該テーブルaspnetuserにID_NUMカラムが入っており、テンプレートに含まれる/Account/Register で登録した際に自動連番でID_NUMが附番されて格納されれば成功です。 2)ID_NUMの最終番号(登録済み)または最終番号の次(次回登録時予定番号)を知る 最終ユーザー番号を得たユーザーが削除されている場合、発番済みの番号を返してはなりません ### 試したこと 事前にSQL serverに定義しておいた場合(DB 1stの場合)はID_NUMを取得しない場合カラムを足しておくだけ、別途EDM定義より、当該テーブルから読みだす、ができたのですが、今回 userManager側できちんと実装する必要があるのと、code 1stにしなくてはならなくなり、困っております ### 補足情報(言語/FW/ツール等のバージョンなど) VisualStudio 2013 VB / C# , SQLserver 2014 上記、どうぞよろしくお願い申し上げます。
回答: 一番最初にユーザー登録する際に EF Code First 機能によって DB が生成されるはずですが、その時点で ID_NUM 列(Identity)を含めて AspNetUsers テーブルを作るようにしたいということだと理解しています。 Visual Studio のインターネット用テンプレートを利用して MVC プロジェクトのコードを自動生成以していると思いますが、生成直後に(アプリを動かしてユーザー登録する前に)以下のようにしてはいかがですか? (1) Models フォルダの IdentityModels.cs を開く。 (2) ApplicationUser クラスに ID_NUM プロパティを追加。ちょっと古い記事ですが以下参照: ASP.NET Identityのプロファイル情報のカスタマイズ (3) DB 上で ID_NUM 列を Identity にするため、ID_NUM プロパティに、 [DatabaseGenerated(DatabaseGeneratedOption.Identity)] という属性を付与。 (4) その上で管理者権限で立ち上げた Visual Studio で実行し(Web アプリは IIS EXpress 上で動くはず)ユーザー登録を行う。 頭で考えただけで、検証はしていませんのでハズレでしたらすみません・・・