You are on page 1of 4

© 2024 giáo.

làng *****

I. KIỂM TRA (CẤU HÌNH) CỦA SQLSERVER ******************************

1. KIỂM TRA: SQL Server Configuration Manager

> Phím Windows + R


> Gõ lệnh dưới đây trong cửa sổ Run ứng với từng phiên bản SQL Server đã cài

SQL Server version Command


---------------------- -------------------------------
SQL Server 2022 SQLServerManager16.msc
SQL Server 2019 SQLServerManager15.msc
SQL Server 2017 SQLServerManager14.msc
SQL Server 2016 SQLServerManager13.msc
SQL Server 2014 SQLServerManager12.msc
SQL Server 2012 SQLServerManager11.msc

2. KIỂM TRA: SQL Native Client Configuration | SQL Server Network Configuration
> Client Protocols | Protocols for...
> TCP/IP > Enabled > IP Addresses > IPAll > TCP Port > 1433
> Restart Server

3. KIỂM TRA: SQL Server Services


> Phím Windows + R
> Gõ lệnh: services.msc
> SQL Server Browser Service: Manual or Automatic | Start | Running

II. CÀI ĐẶT MÔI TRƯỜNG ".NET" VÀ "ENTITY FRAMEWORK CORE" (EF)
******************************

1. CÀI ĐẶT EF CORE CLI (để thực thi các lệnh của EF)
> Gõ lệnh trong Terminal để cài đặt: dotnet tool install --global dotnet-ef
> Hoặc dotnet tool install --global dotnet-ef --
version 8.*

> Gõ lệnh trong Terminal để kiểm tra kết quả: dotnet tool list --global
> Hoặc dotnet-ef

* GỠ BỎ EF CORE
> dotnet tool uninstall dotnet-ef -g

* FIX LỖI CÀI ĐẶT EF CORE CLI: XEM THÊM FILE "EF Core CLI Installation
Troubleshooting.txt"

2. CÀI ĐẶT THƯ VIỆN EF TRONG PROJECT


* TRONG PROJECT SẼ SỬ DỤNG EF CORE | Ở cửa sổ Manage NuGet Packages chọn các thư
viện/package/dependency:
> Microsoft.EntityFrameworkCore
> Microsoft.EntityFrameworkCore.Design
> Microsoft.EntityFrameworkCore.Tools
> Microsoft.EntityFrameworkCore.SqlServer

* Hoặc cài từ Terminal


> ...

* Hoặc cài từ Package Manager Console


> ...
3. CÀI ĐẶT THƯ VIỆN XỬ LÍ FILE CẤU HÌNH JSON
* Trong cửa sổ Manage NuGet Packages chọn:
> Microsoft.Extensions.Configuration
> Microsoft.Extensions.Configuration.Json

III. TẠO DỰ ÁN WINDOWS FORMS VỚI DATABASE FIRST ******************************

1. LẤY CONNECTION STRING TRONG VISUAL STUDIO, CHO CẢ 2 TRƯỜNG HỢP "WINDOWS
AUTHENTICATION" VÀ "SQL SERVER AUTHENTICATION"

> Menu View | SQL Server Object Explorer | Add SQL Server | Properties | Thuộc tính
Connection string

> Chuỗi kết nối CSDL (ví dụ): "Data Source=TRUONG-LANG\SQLEXPRESS;Integrated


Security=True;Connect Timeout=30;Encrypt=False;Trust Server
Certificate=False;Application Intent=ReadWrite;Multi Subnet Failover=False"

> Chuỗi kết nối CSDL (ví dụ): "Data Source=TRUONG-LANG\SQLEXPRESS;User


ID=sa;Password=********;Connect Timeout=30;Encrypt=False;Trust Server
Certificate=False;Application Intent=ReadWrite;Multi Subnet Failover=False"

> HOẶC DÙNG CÁC CHUỖI KẾT NỐI Ở FILE "Connection String-SQLServer.txt"

2. GENERATE ENTITY CLASS TỪ DATABASE - "TẠO CLASS TRONG OOP" TỪ "TABLE TRONG CƠ SỞ
DỮ LIỆU"

>>>>> Trong cửa sổ Terminal gõ một trong các lệnh sau, nhớ thay chuỗi kết nối CSDL
phù hợp với máy bạn:

* Lệnh này sẽ tạo ra các class ứng với các table và ứng với CSDL ở 2 thư mục
Entities\ và Repositories\ của project hiện hành:
> dotnet ef dbcontext scaffold "Data Source=(local);Initial
Catalog=BookManagementDb;User ID=sa;Password=sa123456;Trusted_Connection=True;Trust
Server Certificate=True" "Microsoft.EntityFrameworkCore.SqlServer" --output-dir
"Entities" --context-dir "Repositories"

* Lệnh này sẽ tạo ra các class ứng với các table và ứng với CSDL ở thư mục
Entities\ và thư mục gốc của project hiện hành:
> dotnet ef dbcontext scaffold "Server=(local);Database=
BookManagementDb;UID=sa;PWD=sa123456;TrustServerCertificate=True"
"Microsoft.EntityFrameworkCore.SqlServer" --output-dir "Entities" --context-dir
".\"

* Lệnh này sẽ tạo ra các class ứng với các table và ứng với CSDL gom chung vào thư
mục gốc của project hiện hành:
> dotnet ef dbcontext scaffold "Data Source=(local);Initial
Catalog=BookManagementDb;User ID=sa;Password=sa123456;Trusted_Connection=True;Trust
Server Certificate=True" "Microsoft.EntityFrameworkCore.SqlServer" --output-dir ./

> dotnet ef dbcontext scaffold "Data Source=(local);Initial


Catalog=BookManagementDb;User ID=sa;Password=sa123456;Trusted_Connection=True;Trust
Server Certificate=True" "Microsoft.EntityFrameworkCore.SqlServer" --output-dir
".\"

* Hoặc trong cửa sổ Package Manager Console gõ lệnh:


>

3. TẠO FILE CẤU HÌNH LƯU THÔNG TIN CHUỖI KẾT NỐI CƠ SỞ DỮ LIỆU THAY VÌ HARD-CODED
TRONG "DBCONTEXT" CLASS, TRONG FILE .DLL .EXE

* Tạo mới file JSON, tên là "appsettings.json" đặt chung trong project CÓ CHỨA UI -
WINFORMS

> Nội dung file cấu hình:


{
"ConnectionStrings": {
"DBDefault": "Data Source=(local);Initial Catalog=BookManagementDb;User
ID=sa;Password=sa123456;Trusted_Connection=True;Trust Server Certificate=True"
}
}

* Những thông tin có thể thay đổi trong file này là:
- Chuỗi kết nối phù hợp máy bạn!
- Tên gọi cho chuỗi kết nối - ví dụ "DBDefault" có thể thay bằng chuỗi khác, tuỳ
theo đề bài yêu cầu hay không

* Sử dụng thư viện Microsoft.Extensions.Configuration.Json đã add/ref ở trên để đọc


file "appsettings.json" và trả về chuỗi kết nối CSDL nằm trong thuộc tính
"DBDefault" ở trên qua hàm dưới đây:

private string? GetConnectionString()


{
IConfiguration configuration = new ConfigurationBuilder()
.SetBasePath(Directory.GetCurrentDirectory())
.AddJsonFile("appsettings.json", true, true).Build();
return configuration["ConnectionStrings:DBDefault"];
}

4. CHỈNH SỬA CLASS DbContext ĐỂ ĐỌC CHUỖI KẾT NỐI CSDL TỪ FILE NGOÀI
"appsettings.json"

protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder)


=> optionsBuilder.UseSqlServer(GetConnectionString());
//Thay thế chuỗi hard-coded từ câu lệnh db scaffold
//bằng việc đọc thông tin chuỗi connection từ file .json

//Hàm đọc chuỗi kết nối CSDL có trong file cấu hình appsettings.json
//Nhớ sửa lại tên gọi của chuỗi kết nối theo đề thi đưa cho - thay Ahihi
bằng ...
private string? GetConnectionString()
{
IConfiguration configuration = new ConfigurationBuilder()
.SetBasePath(Directory.GetCurrentDirectory())
.AddJsonFile("appsettings.json", true, true).Build();
return configuration["ConnectionStrings:Ahihi"];
}

5. XÂY DỰNG CÁC CLASS Repository, Service XỬ LÝ TƯƠNG ỨNG CÁC TABLE - NAY LÀ CLASS
NẰM TRONG THƯ MỤC ENTITIES\

- CLASS DbContext CHÍNH LÀ ĐẠI DIỆN CHO CÁI CSDL BẠN ĐANG KẾT NỐI TỚI - HÃY GỌI HÀM
CỦA NÓ ĐI KÈM CÁC "COLLECTIONS" ỨNG VỚI CÁC BẢNG/TABLE TRONG CSDL

- HÃY DÙNG NÓ ĐỂ THỰC THI CÁC THAO TÁC CƠ SỞ DỮ LIỆU THƯỜNG DÙNG: CRUD > THÊM | XOÁ
| SỬA | TÌM KIẾM

[CÒN TIẾP...]
HAPPY CODE | HAPPY CONNECTION TO DATABASE | HAPPY MONEY | HAPPY LIFE

You might also like