Asp.Netcore 2.0.1 Razorの使用学習ノート(五)

5681 ワード

ここではロールのキャラクター類についてのメモを書くべきですが、私はまだこれを実験する時間がないので、後で終わってから共有します.今から他の部分を書きます.
Asp.Netcore 2.0.1 Razorの使用学習ノート-モデルと基本ページの構築
マイクロソフトの公式サイトで提供されている資料は、「プロジェクト」>「追加」>「フォルダの新規作成」です.フォルダの名前をModelsとします.
しかし、個人的にはこのフォルダを新規作成していません.「data」フォルダの下でモデルを構築しました.理由はデフォルトのApplicationUserです.csはここにあり、ApplicationDbContext.csファイルが存在するので、他のフォルダを交換する必要はありません.
一、データモデルを構築する.
「Data」右クリックには、クラスファイルの名前が付けられています(ここでは、大文字と小文字に注意して仕様を遵守することを推奨します.たとえば、GuangGaoなど).public class GuangGao{}には、次のコードが書き込まれています.
        public int Id { get; set; }

        [DataType(DataType.Text)]
        public string      { get; set; }

        [StringLength(10, ErrorMessage = "{0}        {2}    ,  {1}   ,   2   。", MinimumLength = 4)]
        [DataType(DataType.Text)]
        public string      { get; set; }        

二、更新データベース接続クラスを追加する.
「data」フォルダの下にあるApplicationDbContextを開きます.csは、上記のデータモデルをpublic MovieContext(DbContextOptions options):base(options){}に追加します.
using Microsoft.EntityFrameworkCore;

namespace RazorPagesMovie.Models
{
    public class MovieContext : DbContext
    {
        public MovieContext(DbContextOptions options)
                : base(options)
        {
        }
       //         
        public DbSet guanggao { get; set; }
    }
}

編集が完了したら、コンパイルを忘れないでください.
三、データベースの移行を行う.
データベース接続クラスを変更したら、再コンパイルしてください.ここではデフォルトの接続文字列を使用しているので、接続文字列の追加や変更、データベースの登録には関与しません.必要な友達がここをクリックします(マイクロソフト公式チュートリアル).
左下隅」パッケージマネージャコンソール(または「ツール」メニューから「NuGetパッケージマネージャ」>「パッケージマネージャコンソール」)を選択します.
PM>の後に移行コマンドを入力します:Add-Migration xxxxxxはあなたが簡単に説明できる今回の更新内容で、車に戻って、正常に完成した後にコンソールに「Done」の文字が現れます.
このコマンドが完了すると、「Data」「migrations」ファイルの下に現在の日付の先頭が生成されます.あなたのxxxxは終わりです.csファイルを移行します.
四、データベースを更新する.
パッケージマネージャコンソールPM>の後に更新コマンドを入力します:Update-Databaseは車に戻り、正常に完了するとコンソールに「Done」という文字が表示されます.
このとき、データベースを更新すると、新しく生成されたデータベーステーブルが表示されます.
ここでは、mvcバージョンとは少し異なります.mvcはコントローラを構築してビューを生成した後、移行コマンドを入力します.Add-Migration xxxを入力すると、システムは自動的に「Data」「migrations」の移行ファイルを更新します.
五、基本ページを作成する.
元々はvs自動作成対応の基本ページでしたが、ここではそうではありません.(マイクロソフトの公式チュートリアルはdotnet aspnet-codegenerator razorpageコマンドで作成する必要があります.)
具体的な方法は次のとおりです.
①Pagesフォルダに追加したクラスと同じ名前のフォルダを新規作成します.例:GuangGao
②GuangGaoフォルダで右クリック』Razorページ…(または「新規ラック構築プロジェクト」)エンティティフレームワークを使用してRazorページ(CRUD)を生成する」を追加し、ポップアップウィンドウで対応するデータモデルとデータ接続を選択して決定します.
vsは関連するページを自動的に生成します.
ここで注意する必要があります:Razorは新しい技術かもしれませんが、vsのサポートはまだ完備していません.生成された新しいページにはバグがあります.具体的には以下の詳細に現れています.
①using xxxx.Dataは有効ではありません.ここではprivate readonly xxxを簡略化します.Data.ApplicationDbContext _context;private readonly ApplicationDbContext_context; いいですが、個人的には修正せずにスペースを引用するより、細部まで指定してリソースを節約したほうがいいと思います.
②public GuangGao GuangGao { get; set; } ここでプログラムはpublicの後ろのGuangGaoを空間と認識し,修正措置:publicの後ろにData.を追加する.例えばpublic Data.GuangGao GuangGao { get; set; }.
③_context.GuangGaoではGuangGaoの定義が見つかりません.修正策:GuangGaoをguanggaoに変更します.たとえば:context.guanggao.
個人的には、後続のvs更新でマイクロソフトがこれらのエラーを修正するはずだと推定されています.
私にひどく溝を吐かせます:VSこの版(vsバージョン:15.5.6.netバージョン:4.7.02588)のRazorページが自動的に生成されたのは穴のお父さんで、それが自動的に生成されたページは本当に穴が死んで、あなたは相談を持っていません.あちこちで間違いがあり,あちこちでバグがある.
具体的に自動的に生成された穴のお父さんのところ、私は次の編を全面的に捧げます.これらの隠れた穴のお父さんのbugのため、私の3日間の時間を遅らせました.
また、以下は公式に提供されている上記の操作の案です(意図的な友人は自分で試験することができ、問題もあるようです).
1、プロジェクトスキーマ名を右クリック」ファイルエクスプローラでフォルダを開いて開くと、プロジェクトコードのルートディレクトリ(Program.cs、Startup.cs、.csprojファイルを含むプロジェクトディレクトリ)になるはずです.
2、空白領域shift+右ボタンを押す今回コマンドウィンドウを開く
3、コマンドウィンドウの下に次のコードを貼り付けます.
dotnet aspnet-codegenerator razorpage -m guanggao -dc ApplicationDbContext -udl -outDir Pages\guanggao --referenceScriptLibraries
パラメータの意味:-mモデルの名前-dcデータベース接続-udlはデフォルトのレイアウトを使用します.-outDirビューの相対出力フォルダパスを作成します.--referenceScriptLibraries「編集」および「作成」ページに_を追加ValidationScriptsPartial.
4、次のエラーが発生した場合、対応措置をとる.
①、No executable found matching command "dotnet-aspnet-codegenerator".
エラーの原因:コマンドラインのパスディレクトリが間違っています.修正方法:コマンドラインのパスを正しいディレクトリ(Program.cs、Startup.cs、.csprojファイルを含むプロジェクトディレクトリ)に修正します.
②、The process cannot access the file 'RazorPagesMovie/bin/Debug/netcoreapp2.0/RazorPagesMovie.dll' because it is being used by another process.
修正:Visual Studioを終了し、コマンドを再実行します.
 
転載先:https://www.cnblogs.com/chonghanyu/p/8418761.html