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です。
さいごに
初投稿でした。自分のアウトプットのために書きましたので読みづらい文章かもしれないです。(最後に言う..