LoginSignup
0
0

More than 1 year has passed since last update.

ローカルのSQL ServerにASP.NET + EF Coreでアクセスする

Posted at

TL:DR

ローカルにインストールしたSQL Serverのテーブルデータを
ASP.NETで作成したAPI経由でEntityFramework使って取得してみます。
肝は.NET6を初めて触る点だけです。

環境

  • SQL Server Express 15.0.2000.5
  • .NET 6.0.300
  • VS Code

事前準備

  • SQL Server Expressをインストール。
    SQL Server Express LocalDB
    ついでにSQL Server Management Studio(以下SSMS)もインストールしておく。

  • .NET 6 SDKをインストール
    .NET6

  • VS Codeは割愛

テーブルの作成

SSMSからインストールしたローカルDBに接続。
ローカルDBのサーバー名はインストール時に特に設定しなければ

localhost\SQLEXPRESS

となる模様。

その後、以下の定義でテーブルを作成。

CREATE TABLE Customers (
  ID int PRIMARY KEY,
  CompanyName nchar(10) NULL,
  Address nchar(10) NULL,
  Phone nchar(10) NULL
)

※型は適当です。テスト用なので。

APIの作成

プロジェクト作成

適当なフォルダをVS Codeで開き、ターミナルを表示(Ctrl + @)し、ASP.NETプロジェクトを作成。

dotnet new mvc

今回はSQL Serverとつなぐため、必要なパッケージを取得するためターミナルで以下を実行。

dotnet add package Microsoft.EntityFrameworkCore.SqlServer

各必要なクラスの作成

コードは以下を参照ください。

詰まった点

詰まったというか凡ミスというか…。

接続文字列

接続文字列は以下になります。

Server=localhost\\SQLEXPRESS;Database=(データベース名);Trusted_Connection=True;

データベース名のところを初期値のmasterのままにしてしばらく詰まってましたw

SSLリダイレクトの解除

テンプレートで作成すしたProgram.csに記載のリダイレクトのパイプラインは削除する必要があります。

- app.UseHttpsRedirection();
+ //app.UseHttpsRedirection();

ローカルで実施するのでHTTP接続で十分なので。

接続確認

なんでもよいですが、RESTクライアントツールでテストします。
私はPOSTMAN使いました。

ただしローカル実行が必要ですので、クラウドのものとかはNGです。

さいごに

初投稿でした。自分のアウトプットのために書きましたので読みづらい文章かもしれないです。(最後に言う..

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0