tags

.NET Core MVC モデルの追加とDBマイグレーション、コントローラー自動作成方法

● 1. モデルファイルの追加

「ソリューションエクスプローラー」→「/Models」を右クリック → 追加 → 「クラス」(モデルの名前を入力して「追加」)

● 2. モデル(DB定義)の記述

Movieクラスを作成した場合
/models/Movie.cs

    public class Movie
    {
        public int ID { get; set; }
        public string Title { get; set; }
        public DateTime ReleaseDate { get; set; }
        public string Genre { get; set; }
        public decimal Price { get; set; }
    }

● 3. DBマイグレーション

Visual Studioの「パッケージマネージャー コンソール」から

Add-Migration Initial
Update-Database

(または PowerShellから同様のコマンドを実行することができます。Mac、Unixの場合はこちら)

dotnet ef migrations add Initial
dotnet ef database update

● 4. コントローラーの自動生成

「ソリューションエクスプローラー」→「/Controllers」を右クリック → 追加 → 「コントローラー」 →「Entity Frameworkを利用したビューがあるMVCコントローラー」(モデルクラスを選択して「追加」)

● 5. 実行

「f5」でアプリを実行し
http://localhost:50914/Movies
へ移動し動作を確認する。

No.1225
05/20 10:38

edit

SQL Server へ 「SQL Server認証」でログインするユーザーを作成し .Net アプリのDB接続に使用する

SQL Serverへのログインはデフォルトでは Windows認証となっていますが、
ユーザーとパスワードをしていすればログインできる「SQL Server認証」でログインできるようにしてみます。

● 1. 「SQL Server認証」でログインするユーザーを登録する

Microsoft SQL ServerManagement Studio を起動して次のようにします。

「セキュリティ」→「ログイン」を右クリックして「新しいログイン」を選択する
・「ログイン名」を入力する
・「SQL Server認証」を選択する
・「パスワード」「パスワードの確認入力」を入力する
・「パスワードポリシーを適用する」のチェックを外す(簡単なパスワードを許可したい場合)
・「既定のデータベース」、使用したいデータベースを選択
・「既定の言語」、 Japanese を選択
・「ユーザーマッピング」ページへ移動し操作したいデータベースの横にある「マップ」のチェックボックスのチェックをつける
・操作したいデータベースを選択し、下の画面の「db_owner」にチェックをつける

● 2. DB全体の認証モードを変更する

1. モード認証を変更

サーバー名を右クリック → プロパティ → 「セキュリティ」を選択 →「SQL Server認証モードとWindows認証モード」を選択 → OK

2. SQL Server を再起動

SQL Server 構成マネージャー から SQL Server を再起動する

● 3. ログインの確認

Microsoft SQL ServerManagement Studio を起動して 「SQL Server認証」 を選択し先ほど入力したIDとパスワードでログインできることを確認する。

● 4. .NET アプリでの使用

SQLサーバ名 : WINSERVER2016\\SQLEXPRESS
データベース名 : testdb
ID : hogehoge
PASS : mypass

で接続するには appsettings.json に次のように記述します。

"ConnectionStrings": {
    "DefaultConnection": "Server=WINSERVER2016\\SQLEXPRESS;Initial Catalog=testdb;MultipleActiveResultSets=true;User ID=hogehoge;Password=mypass"
  },

引用 : https://stackoverflow.com/questions/42921947/adding-a-sql-connection-to-my-asp-net-core-application-how-to-define-connectio

No.1221
05/12 00:07

edit

.Net 本番機でのエラーを把握する

web.config を次のように書き換えます

<aspNetCore processPath="dotnet" arguments=".\TestLoginApp5.dll" stdoutLogEnabled="false" stdoutLogFile=".\logs\stdout" />
<aspNetCore processPath="dotnet" arguments=".\TestLoginApp5.dll" stdoutLogEnabled="false" stdoutLogFile=".\logs\stdout">
	<environmentVariables>
	<environmentVariable name="ASPNETCORE_ENVIRONMENT" value="Development" />
	</environmentVariables>
</aspNetCore>

No.1220
05/11 17:02

edit

dotnet コマンド CLI

● dotnet ef(EntityFramework)データベース コマンド

# CLI版を使う際には追加パッケージをインストールします。
dotnet add package Microsoft.EntityFrameworkCore.Tools.DotNet

# Add-Migration 適当な名前
dotnet ef migrations add 適当な名前

# Remove-Migration
dotnet ef migrations remove

# Update-Database
dotnet ef database update

# Drop-Database
dotnet ef database drop

引用: EntityFrameworkCoreを.NET Core コンソールアプリでCodeFirstに使う - Qiita

No.1219
05/11 11:13

edit

.Net Core MVC で ユーザー認証のアプリを5分で作成する

● 1. Visual Studio 2017 から 新規プロジェクトを作成する

その際以下の認証機能を追加します

・メニューの「新規作成」→「プロジェクト」→「ASP .Net CORE MVCアプリケーション」で【OK】を押す。
・「Webアプリケーション(モデル ビューコントローラー)」「認証の変更」「個別のユーザーアカウント」を選択して【OK】を押す。

これでプロジェクトファイルとソースコード一式が生成されます。

● 2. 接続するデータベースの設定とデータベース名を変更する

appsettings.json の DB接続の項目を変更します。

appsettings.json

  "ConnectionStrings": {
    "DefaultConnection": "Server=(localdb)\\mssqllocaldb;Database=aspnet-TestLogin4-3FFC9AB5-5122-4BFD-9097-4F6113EE0EA3;Trusted_Connection=True;MultipleActiveResultSets=true"
  },

これの

"DefaultConnection": "Server=(localdb)\\mssqllocaldb;

DefaultConnectionを ローカルDBからSQL Server に変更します ↓

PCの名前が MYPCの場合

"DefaultConnection": "Server=MYPC\\SQLEXPRESS;

またデータベース名はデフォルトでは
aspnet-TestLogin4-3FFC9AB5-5122-4BFD-9097-4F6113EE0EA3 といった長い名前がつけられます。 これも好きな名前に変えておきます。

Database=aspnet-TestLogin4-3FFC9AB5-5122-4BFD-9097-4F6113EE0EA3;

↓ (データベース名を mydb に変更します)

Database=mydb;

● 3. データベースのマイグレーション

A. パッケージマネージャーコンソール を使用する場合

パッケージマネージャーコンソールから

Update-Database

と入力します。

B. PowerShellを使用する場合

PowerShellを開き、プロジェクトがあるディレクトリに移動してから

dotnet ef database update

と入力します。

以上です。

● 4. Visual Studio からビルドして実行する

ローカルで動作することを確認します

● 5. サーバに SQL Serverをインストールする

1. SQL Server 2017 Express をインストールする

(10GBまで無料の SQL Server 2017 Express をインストールします) https://www.microsoft.com/ja-jp/sql-server/sql-server-editions-express

2. SQL Server Management Studio をインストールする

https://go.microsoft.com/fwlink/?linkid=870039

No.1218
05/19 13:10

edit

Visual Studio からFTPを使って .Net Core MVC アプリを手動でデプロイする

● 1.Visual Studio から Webデプロイパッケージ を使用しアプリの zip ファイルを作成する

・ Visual Studio 2017 を立ち上げてアプリのプロジェクトファイルを開く

・ 「ソリューションエクスプローラー」のプロジェクトを右クリックして「発行」

・ 「設定」を押して発行方法「Webデプロイパッケージ」にして発行する。

指定したディレクトリに .zip ファイルが生成されます。

●2. デプロイするサーバー側に .NET CORE SDK をインストールする

https://www.microsoft.com/net/download/windows

●3. デプロイパッケージをインポートする

・FTPを使ってサーバへ .zip ファイルを送信する

・「インターネット インフォメーション サービス (IIS) マネージャー」の左のメニューからアプリを配置したいサイトを選択し「アプリケーションのインポート」を実行する

.zip ファイルや 発行先ディレクトリの入力を求められるので入力します。

●4. .Net Core MVC アプリを起動する

・まず dotnet コマンドを使って組み込みサーバで動作を確認する

PowerShellを立ち上げて、該当ディレクトリに移動した後で次のコマンドを入力 (例: アプリ名が HelloWorld01 の場合)

 dotnet HelloWorld01.dll

組み込みサーバが立ち上がるので表示されるアドレスを入力して動作を確認します。 (確認後 Press Ctrl+C でサーバを終了。)

・サイトのurlを入力してアクセスを確認する

以上です。 手動のデプロイも簡単です。

No.1215
05/09 11:57

edit

Windows PowerShell の起動の仕方とエイリアスの設定

● Windows PowerShell の起動の仕方

Explorer で該当ディレクトリに移動しアドレス欄に powershell と入力して実行すると、該当ディレクトリをカレントディレクトリとして立ち上がります

● bash の .bash_profile のように、Windows PowerShell のエイリアスを設定する

● 管理者権限でPowerShell を起動し、以下を実行する

Set-ExecutionPolicy RemoteSigned

● 普通にPowerShell を起動し、以下を実行する

New-item –type file –force $profile
notepad $profile

ファイルが開くのでエイリアスを追加して保存する

Set-Alias g git
Set-Alias l Get-ChildItem

PowerShell を再起動するとエイリアスが使えるようになっています。

No.1212
05/11 11:13

edit

Windowsサーバに open sshd をインストールして他のマシンからWindowsへssh接続できるようにする

● 1. Windows用 ssh をダウンロードする

https://github.com/PowerShell/Win32-OpenSSH/releases
(64bit版、32bit版どちらもあるのでお使いのサーバ用の zip ファイルをダウンロード)

● 2. 解凍して任意の場所に置く

c:\openssh\

に置きます。

● 3. 環境変数にパスを追加する

・「Windowsアイコンを右クリック」→「システム」をクリック
・「システムの詳細設定」→「環境変数」をクリック
・「システム環境変数」の 「Path」 を選択して「編集」をクリック。
・「追加」を押して「C:\openssh」を追加

● 4. sshサーバをインストール

Power Shellを起動して以下を実行します

cd \openssh
.\install-sshd.ps1
New-NetFirewallRule -Protocol TCP -LocalPort 22 -Direction Inbound -Action Allow -DisplayName SSH

● 5. sshサーバの自動起動をセット

Power Shellを起動して以下を実行します

Set-Service sshd -StartupType Automatic
Set-Service ssh-agent -StartupType Automatic

● 6. Windowsサーバを再起動

再起動後に他のマシンからssh接続を確認します。

No.1204
05/10 10:45

edit