Entity Framework Coreを使用したASP.NETとSQL Serverの連携
ASP.NETとSQL Serverのデフォルトポート
デフォルトポートとは?
ポート番号は、ネットワーク上の通信を特定するために使用する番号です。異なるサービスは異なるポート番号を使用することで、同時に通信することができます。
SQL Serverの場合、デフォルトで以下のポート番号が使用されます。
- TCP 1433: データベースエンジンへの接続に使用されます。
- TCP 1434: SQL Server Browser サービスに使用されます。
- UDP 1434: 名前解決に使用されます。
ASP.NETは、Webサーバー上で動作するため、デフォルトのポート番号はWebサーバーによって異なります。
- IIS: 80番 (HTTP) と 443番 (HTTPS)
デフォルトポートを使用するメリットは、以下の通りです。
- 設定が簡単
- 多くのクライアントソフトウェアがデフォルトポートを認識している
一方、デメリットは以下の通りです。
- セキュリティリスクが高まる
- 競合するサービスが存在する場合、ポート番号が重複する可能性がある
ポート番号を変更する
セキュリティ上の理由などで、デフォルトポートを変更したい場合があります。ポート番号を変更するには、以下の方法があります。
- SQL Server Configuration Managerを使用する
- T-SQLコマンドを使用する
ポート番号を変更する際は、以下の点に注意する必要があります。
- ファイアウォールの設定を変更する必要がある
- クライアントソフトウェアの設定を変更する必要がある
C# で SQL Server に接続するサンプルコード
using System.Data.SqlClient;
public class SqlConnectionExample
{
public static void Main(string[] args)
{
// 接続文字列
string connectionString = "Data Source=localhost;Initial Catalog=TestDB;Integrated Security=True";
// SqlConnection オブジェクトを作成
using (SqlConnection connection = new SqlConnection(connectionString))
{
// データベースに接続
connection.Open();
// SqlCommand オブジェクトを作成
using (SqlCommand command = new SqlCommand("SELECT * FROM Customers", connection))
{
// クエリを実行
SqlDataReader reader = command.ExecuteReader();
// 結果を処理
while (reader.Read())
{
Console.WriteLine("{0} {1}", reader["FirstName"], reader["LastName"]);
}
}
}
}
}
ASP.NET Core MVC で SQL Server を使用するサンプルコード
以下のコードは、ASP.NET Core MVC で Entity Framework Core を使用して SQL Server に接続するサンプルコードです。
Model
public class Customer
{
public int Id { get; set; }
public string FirstName { get; set; }
public string LastName { get; set; }
}
Context
public class MyContext : DbContext
{
public MyContext(DbContextOptions<MyContext> options)
: base(options)
{
}
public DbSet<Customer> Customers { get; set; }
}
Controller
public class HomeController : Controller
{
private readonly MyContext _context;
public HomeController(MyContext context)
{
_context = context;
}
public IActionResult Index()
{
var customers = _context.Customers.ToList();
return View(customers);
}
}
このコードは、Customers
テーブルのデータを取得して Index
ビューに表示します。
上記のコードはあくまでもサンプルです。実際のアプリケーションでは、必要に応じてコードを変更する必要があります。
ASP.NETとSQL Serverを連携させるその他の方法
Entity Framework Core
ADO.NET
ADO.NETは、.NET Framework用のデータアクセス技術です。ADO.NETを使用すると、SQL Serverを含むさまざまなデータベースに直接アクセスすることができます。
Dapper
Dapperは、.NET Framework用のオープンソースのマイクロ ORM です。Dapperは、Entity Framework Coreよりも軽量で高速な ORM です。
その他のライブラリ
上記以外にも、ASP.NETとSQL Serverを連携させるためのさまざまなライブラリが存在します。
どの方法を選択するべきかは、アプリケーションの要件によって異なります。以下のような点を考慮する必要があります。
- アプリケーションの規模
- パフォーマンス要件
- 開発者のスキル
ASP.NETとSQL Serverを連携させる方法は複数あります。それぞれの方法にはメリットとデメリットがあるので、アプリケーションの要件に合わせて最適な方法を選択する必要があります。
asp.net sql sql-server