質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Entity Framework

Entity Frameworkは、.NET Framework 3.5より追加されたデータアクセス技術。正式名称は「ADO.NET Entity Framework」です。データベースエンジンに依存しておらず、データプロバイダの変更のみで様々なデータベースに対応できます。

C#

C#はマルチパラダイムプログラミング言語の1つで、命令形・宣言型・関数型・ジェネリック型・コンポーネント指向・オブジェクティブ指向のプログラミング開発すべてに対応しています。

ASP.NET MVC Framework

ASP.NET MVC Frameworkは、MVCパターンをベースとした、マイクロソフトのウェブアプリケーション開発用のフレームワークです。

VB.NET

Microsoft Visual Basic .NETのことで、Microsoft Visual Basic(VB6)の後継。 .NET環境向けのプログラムを開発することができます。 現在のVB.NETでは、.NET Frameworkを利用して開発を行うことが可能です。

Q&A

解決済

1回答

5116閲覧

.net Identity でUser登録連番を別途持ちたい

pcb

総合スコア7

Entity Framework

Entity Frameworkは、.NET Framework 3.5より追加されたデータアクセス技術。正式名称は「ADO.NET Entity Framework」です。データベースエンジンに依存しておらず、データプロバイダの変更のみで様々なデータベースに対応できます。

C#

C#はマルチパラダイムプログラミング言語の1つで、命令形・宣言型・関数型・ジェネリック型・コンポーネント指向・オブジェクティブ指向のプログラミング開発すべてに対応しています。

ASP.NET MVC Framework

ASP.NET MVC Frameworkは、MVCパターンをベースとした、マイクロソフトのウェブアプリケーション開発用のフレームワークです。

VB.NET

Microsoft Visual Basic .NETのことで、Microsoft Visual Basic(VB6)の後継。 .NET環境向けのプログラムを開発することができます。 現在のVB.NETでは、.NET Frameworkを利用して開発を行うことが可能です。

0グッド

0クリップ

投稿2017/03/30 04:40

###前提・実現したいこと
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

上記、どうぞよろしくお願い申し上げます。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

一番最初にユーザー登録する際に EF Code First 機能によって DB が生成されるはずですが、その時点で ID_NUM 列(Identity)を含めて AspNetUsers テーブルを作るようにしたいということだと理解しています。

Visual Studio のインターネット用テンプレートを利用して MVC プロジェクトのコードを自動生成以していると思いますが、生成直後に(アプリを動かしてユーザー登録する前に)以下のようにしてはいかがですか?

(1) Models フォルダの IdentityModels.cs を開く。

(2) ApplicationUser クラスに ID_NUM プロパティを追加。ちょっと古い記事ですが以下参照:

ASP.NET Identityのプロファイル情報のカスタマイズ
https://codezine.jp/article/detail/7845

(3) DB 上で ID_NUM 列を Identity にするため、ID_NUM プロパティに、

[DatabaseGenerated(DatabaseGeneratedOption.Identity)]

という属性を付与。

(4) その上で管理者権限で立ち上げた Visual Studio で実行し(Web アプリは IIS EXpress 上で動くはず)ユーザー登録を行う。

頭で考えただけで、検証はしていませんのでハズレでしたらすみません・・・

投稿2017/03/30 07:08

退会済みユーザー

退会済みユーザー

総合スコア0

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

pcb

2017/04/03 04:02

ご回答ありがとうございます、昨日無事上記の処理で達成することができました: (vb.net) ''' <summary> ''' 登録連番 ''' </summary> <Required> <Display(Name:="登録連番")> <DatabaseGenerated(DatabaseGeneratedOption.Identity)> <Column("ID_NUM", Order:=0)> Public Property Id_Num As Integer
退会済みユーザー

退会済みユーザー

2017/04/03 04:09

結果の連絡をありがとうございました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問