前提・実現したいこと
認証ありのASP.NET Core Razor Pagesをで、スキャフォールディングにてPageを作成したいです。
再現手順
認証ありRazor Pagesアプリの作成
VisualStudioで新規プロジェクト>ASP.NET Core Webアプリケーション>Webアプリケーション(認証あり/個別のユーザーアカウント)で作成
パッケージマネージャーコンソールで
Add-Migration Initial Update-Database
この状態で起動して、ログインなどの動作は確認しました。
スキャフォールディングの実行
Microsoft.EntityFrameworkCore.Sqliteをnugetで追加
以下のファイルを追加
Models>Person.cs
csharp
1public class Person 2{ 3 public int PersonId { get; set; } 4 public string Name { get; set; } 5}
Pages>Personsフォルダで追加>新規スキャフォールディングアイテムの追加>Entity Frameworkを使用するRazorページ(CRUD)
- モデルクラス: Person.cs(上記モデル)
- データコンテキストクラス:既存のContextは選択できず、【+】ボタンから新規作成
パッケージマネージャーコンソールで以下の操作をするとエラーメッセージが表示され、Migrationも作成されません。
Add-Migration AddPerson
More than one DbContext was found. Specify which one to use. Use the '-Context' parameter for PowerShell commands and the '--context' parameter for dotnet commands.
Migrationができていないので、当然かもしれませんが、Personsのページにアクセスしてもエラーします。
https://localhost:44386/Persons
A database operation failed while processing the request. SqlException: Cannot open database "RazorPageAuthScafffoldContext-86510494-657f-4c38-bf76-28d0f480abea" requested by the login. The login failed. Login failed for user 'xxxxxxxxxx'. Use migrations to create the database for RazorPageAuthScafffoldContext In Visual Studio, use the Package Manager Console to scaffold a new migration and apply it to the database: PM> Add-Migration [migration name] PM> Update-Database Alternatively, you can scaffold a new migration and apply it from a command prompt at your project directory: > dotnet ef migrations add [migration name] > dotnet ef database update
なお、同様の手順を認証のないプロジェクトテンプレートで行った場合は問題なくできました。
試したこと
IdentityASP.NET Core プロジェクトでのスキャフォールディング | Microsoft Docs
上記ページを参考にしたのですが、[ Identity add] 自体の表示がなかったです。
[ Add スキャフォールディング] ダイアログボックスの左ペインで、[ Identity add] を選択
解決後追記
解決後に自身でわかったことがあるので、追記します。
「IdentityASP.NET Core プロジェクトでのスキャフォールディング」の項目は、ログインや登録画面をスキャフォールディングで作成することを説明しています。
そして、そのメニューは「ID」という情報量がすくない選択肢で実行されます。
名前の割に、2要素認証画面などなどの、すごい量のファイル数が作られます。
補足情報(FW/ツールのバージョンなど)
環境
Windows 10 1909
Visual Studio 2019 ver. 16.6.2
.NET Core 3.1
筆者のレベル
C#を用いたデスクトップアプリケーションの開発経験(WPF)はあります。
C#言語自体はおおよそ理解しているつもりです。
WebアプリケーションはC#も含めて、初心者です。
ASP.NET Core3入門は全て実行してみました。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/06/12 01:02
退会済みユーザー
2020/06/12 01:41
2020/06/12 06:35