So-net無料ブログ作成
検索選択
前の2件 | -

【メモ】ASP.NET Core ベースのEntity Framework 学習 [ぱしょこん]

ASP.NET Core ベースのEntity Framework を学習するメモです。

参考

ASP.NET MVCプログラミング入門

この記事は「ASP.NET MVCプログラミング入門」をほぼそのまま行っています。

Visual Studio 2017 RC のインストール

Visual Studio 2017をインストール。(2016/11現在はRC版です。)
Visual Studio 2015 では.NET Coreのテンプレートが標準でないので、学習用としてVisual Studio 2017を新規インストールします。Visual Studio 2015またはそれ以前のVSが既存マシンにある環境では、新旧が共存すると依存関係で問題が起き学習が思うように進まない可能性があります。学習用の単一機能のマシンか仮想マシンでコンパイルするのがベストです。

Visual Studio 新規ソリューション生成

MENU -> ファイル -> 新規作成 -> プロジェクトからC# -> Web -> ASP.NET Core のテンプレートを選びます。
このとき、認証の変更ボタンで個別ユーザアカウントを設定するのを忘れずに。
とりあえず、F5(実行)。テンプレートのWebページが表示されます。

SQL Server に新規データベースを作成しPersonクラスを生成

SQL ServerはVisual Studioの入ったクライアントマシンと同居すると重くなるので、できればローカルでなく、学習用マシンとは別のSQLサーバがおすすめ。もちろんAzureのSQLでも可。
Personテーブル追加のクエリを実行。

Modelクラスの生成その前にライブラリの依存関係を解決

パッケージマネージャコンソールで次を実行します。
VS2017RCテンプレートではこれを事前行わないとエラーが発生します。
Install-Package Microsoft.EntityFrameworkCore
Install-Package Microsoft.EntityFrameworkCore.Design
Install-Package Microsoft.Extensions.Logging 

Modelクラスの生成

PowerShellでVisual Studioの.csprojのあるディレクトリまで移動後、次のコマンドを実行します。
dotnet ef dbcontext scaffold "<接続文字列>" Microsoft.EntityFrameworkCore.SqlServer -o Models
接続文字列はVisual Studioのデータ接続でSQL Serverに接続、プロパティ欄で確認できます。

ソースの修正

Startup.csを修正。これは書籍通り。
スキャフォールディングの実行
ソリューションエクスプローラーのControllersのコンテキストメニューを開き 追加 -> コントローラ を選びます。

実行



【メモ】普通のデスクトップPCにHyper-Vを立ててノートPCでリモート接続する [ぱしょこん]

参考記事

大変参考になりました。ありがとうございます。

Windows Server 2012 > 非ドメイン環境におけるHyper-Vのリモート管理
Technical Preview Hyper-V > 非ドメイン環境における Hyper-V のリモート管理
以上 -山市良のえぬなんとかわーるど-
Hyper-V マネージャーで資格情報を指定して Hyper-V に接続する
-www.vwnet.jp-

概要

自宅サーバ(Windows Server 2012 R2)またはデスクトップPC(Windows 10)にHyper-Vサーバを立て、ノートPC(Windows 10)からリモートでHyper-Vマネージャー(virtmgmt.msc)を操作する。


そのまま他のサーバに接続すると、「接続中にエラー・・・」のメッセージが出て接続できない。

手順

  • HOSTSを弄る(ホスト名で接続したい場合)
  • WinRMの信頼されたホストをセット
  • ホスト資格情報をセット(cmdkey)
  • DCOMの匿名アクセスを許可
  • Hyper-Vマネージャーでサーバに接続

やってみる

クライアント側、すなわちノートPCにHyper-Vをインストール
appwiz.cpl
ノートPC上では仮想マシンは動かさないので、Hypervisorはチェックしない。
先にホストとクライアントをPowerShellでリモート接続
これをやっておけばWinRMサービスも起動していて後々楽。
Step1.ホスト側でPSリモートの許可
PS C:\> Enable-PSRemoting
Step2.クライアント側でWinRMセット
PS C:\> Set-Item wsman:\localhost\Client\TrustedHosts "サーバIP"

WinRM セキュリティの構成。
このコマンドは WinRM クライアントの TrustedHosts の一覧を変更します。TrustedHosts
の一覧内にあるコンピューターは認証されない可能性があります。クライアントはこれらのコンピューターに資格情報を送信する可能性があります。この一
覧を変更しますか?
[Y] はい(Y)  [N] いいえ(N)  [S] 中断(S)  [?] ヘルプ (既定値は "Y"):
PS C:\> 
Step3.クライアント側で、念のためWinRMサービスがスタートしているか確認
PS C:\> get-service | where {$_.Name -match 'Win'}
tatus   Name               DisplayName
------   ----               -----------
Stopped  WinDefend          Windows Defender Service
Running  WinHttpAutoProx... WinHTTP Web Proxy Auto-Discovery Se...
Running  Winmgmt            Windows Management Instrumentation
Running  WinRM              Windows Remote Management (WS-Manag...
Step4.クライアント側で、念のため信頼ホストを確認
PS C:\> Get-Item WSMan:\localhost\Client\TrustedHosts


   WSManConfig: Microsoft.WSMan.Management\WSMan::localhost\Client

Type            Name                           SourceOfValue   Value
----            ----                           -------------   -----
System.String   TrustedHosts                                   "サーバIP"
PS C:\> 
Step4.クライアント側でPSSession開始
PS C:\> Enter-PSSession -ComputerName "サーバIP" -Credential "サーバIP"\Administrator
["サーバIP"]: PS C:\> 
HOSTSの編集(サーバ名で接続したい場合。)
notepad.exe C:\Windows\system32\drivers\etc\HOSTS
DCOMの編集
これをやらないと接続はできても仮想マシンの一覧が出てこない。
dcomcnfg.exe
ANONYMOUS LOGONに対するリモート アクセスの許可チェック。
ホスト資格情報をセット
Windowsサーバの場合はビルトインアカウントAdministraatorの資格情報が残っていることがあるが、デスクトップで一般ユーザでしか接続履歴がないことが多いのでAdministratorの資格情報をセットする。勿論ホスト側でAdministratorアカウントが有効であること。

PS C:\> cmdkey /add:"サーバIPまたはホスト名" /user:"サーバIPまたはホスト名"\Administrator /pass
'"サーバIPまたはホスト名"' に接続するための '"サーバIPまたはホスト名"\Administrator' のパスワードを入力してください:

CMDKEY: 資格情報を正しく追加しました。
PS C:\> 
Hyper-Vマネージャーでサーバに接続
クライアントのHyper-Vマネージャーで、左ペインのHyper-Vマネージャーのコンテキストメニューを開いてサーバに接続(C)...
仮想マシン一覧から、vmconnect.exeでゲストの画面を開くことができる。

以上
タグ:Hyper-V
前の2件 | -
水陸両用カニさん TOPへ
SDガンダム作ろう会
白吉「水陸両用カニさんの隠れ家」「SDガンダム作ろう会」を応援しています。


白吉「ソニーショップくんこく」を応援しています。