The main objectives of this article are:
To manage or control all the table classes we have to create a database context class. So let's create our context class like 'MyWorldDbContext.cs' in the 'Data' folder.
- .NET6 Web API
- Install .NET6 SDK
- Create A .NET6 Web API Application.
- Entity Framework Core
- Install Entity Framework Core NuGet
- SQL Connectionstring
- Setup Entity Framework Core DatabaseContext.
.NET6 Web API:
Web API is a framework for building an HTTP service that can be accessed from any client like browser, mobile devices, and desktop apps.
In simple terminology API(Application Programming Interface) means an interface module that contains a programming function that can be requested via HTTP calls to save or fetch the data for their respective clients.
Some of the key characteristics of API:
- Supports HTTP verbs like 'GET', 'POST', 'PUT', 'DELETE', etc.
- Supports default responses like 'XML' and 'JSON'. Also can define custom responses.
- Supports self-hosting or individual hosting, so that all different kinds of apps can consume it.
- Authentication and Authorization are easy to implement.
- The ideal platform to build REST full services.
Install .NET6 SDK:
Note: Install .NET6 SDK for .NET CLI users. For Visual Studio users no need to install it explicitly, just need to have Visual Studio 2022(only the latest version supports .NET6). To download the Visual Studio 2022 community version(free version) go to "https://visualstudio.microsoft.com/vs/".
Dotnet CLI users must install the .NET6 SDK, so go to 'https://dotnet.microsoft.com/en-us/download/dotnet/6.0' and then download the SDK with respect to your machine operating system.
Create A .NET6 Web API Application:
Let's create a .Net6 Web API sample application to accomplish our demo. We can use either Visual Studio 2022 or Visual Studio Code(using .NET CLI commands) to create any.Net6 application. For this demo, I'm using the 'Visual Studio Code'(using the .NET CLI command) editor.
CLI command
dotnet new webapi -o Your_Project_Name
dotnet new webapi -o Your_Project_Name
Now let's explore default services or middleware that are in 'Program.cs':
Services in Program.cs:
builder.Services.AddControllers(); builder.Services.AddEndpointsApiExplorer(); builder.Services.AddSwaggerGen();
- (Line:1) The 'AddControllers' service for API Controllers. This method will not work for the Views or Pages.
- (Line: 2) The 'AddEndpointsApiExplorer' service for endpoint metadata.
- (Line: 3) The 'AddSwagerGen' service for the Swagger.
if (app.Environment.IsDevelopment()) { app.UseSwagger(); app.UseSwaggerUI(); } app.UseHttpsRedirection(); app.UseAuthorization(); app.MapControllers();
- (Line: 3-4) The swagger middleware to load the swagger page.
- (Line: 6) The 'UseHttpsRedirection' middleware to redirect the 'HTTP' request to 'HTTPS'.
- (Line: 7) The user authorization middleware.
- (Line: 8) The 'MapControllers' is an endpoint middleware that can direct the request to API's controllers.
Entity FrameworkCore:
Entity Framework Core is an Object/Relational Mapping(ORM) framework. EF Core makes database communication more fluent and easy. The 'DatabaseContext' class acts as a database from our c# code, it will contain all registered tables as 'DbSet<TEntity>'(TEntity is any POCO class of a table).
In this demo, we are going to implement the 'Code First With Existing Database' technique. Creating the classes for an existing database is known as 'Code First With Existing Database'.
Install Entity FrameworkCore NuGet:
Now install the Entity Framework Core NuGet.
Package Manager Command
Install-Package Microsoft.EntityFrameworkCore -Version 6.0.4
Install-Package Microsoft.EntityFrameworkCore -Version 6.0.4
CLI command
dotnet add package Microsoft.EntityFrameworkCore --version 6.0.4
dotnet add package Microsoft.EntityFrameworkCore --version 6.0.4
Now install SQLServer which is Entity Framework Core dependent library.
Package Manager Command
Install-Package Microsoft.EntityFrameworkCore.SqlServer -Version 6.0.4
Install-Package Microsoft.EntityFrameworkCore.SqlServer -Version 6.0.4
CLI command
dotnet add package Microsoft.EntityFrameworkCore.SqlServer --version 6.0.4
dotnet add package Microsoft.EntityFrameworkCore.SqlServer --version 6.0.4
SQL Connectionstring:
Let's prepare an SQL server connectionsting.
Sample SQL Connectionstring:
Data Source=your_sql_server_name;Initial Catalog=your_database_name;Integrated Security=True;Connect Timeout=30
- Data Source - SQL Server Name.
- Initial Catalog - Name of your database.
- Integrated Security - Current windows credentials use for authentication.
- Connect Timeout - SQL Connection Timeout.
appsettings.Development.json:
"ConnectionStrings": { "MyWorldDbConnection":"your_connection" }
Setup Entity Framework Core DatabaseContext:
Let's create a class that represents our table 'Student'. So let's folder like 'Data' and a subfolder like 'Entities' and then add a class like 'Student.cs'.
Data/Entities/Student.cs:
namespace Student.Api.Data.Entities; public class Student { public int Id { get; set; } public string? Name { get; set; } public int Age { get; set; } public string? Gender { get; set; } }
using Microsoft.EntityFrameworkCore; namespace Student.Api.Data; public class MyWorldDbContext : DbContext { public MyWorldDbContext(DbContextOptions<MyWorldDbContext> options) : base(options) { } public DbSet<Student.Api.Data.Entities.Student> Student { get; set; } }
- (Line: 5) The 'Microsoft.EntityFrameworkCore.DbContext' needs to be inherited by our 'MyWorldDbContext' to act as a database context class.
- (Line: 7) The 'Microsoft.EntityFrameworkCore.DbContextOptions' is instance of options that we are going to register in 'Program.cs' like 'ConnectionString', 'DatabaseProvider', etc.
- (Line: 11) All our table classes must be registered inside of our database context class with 'DbSet<T>' so that the entity framework core can communicate with the tables of the database.
Program.cs:
builder.Services.AddDbContext<MyWorldDbContext>(options => { options.UseSqlServer(builder.Configuration.GetConnectionString("MyWorldDbConnection")); });
- Here we have to pass our connection string to 'UseSqlServer()'.
Support Me!
Buy Me A Coffee
PayPal Me
Video Session:
Wrapping Up:
Hopefully, I think this article delivered some useful demo on .NET6 API and Angular application. using I love to have your feedback, suggestions, and better techniques in the comment section below.
Refer:
Part-1 A CRUD Operation Demo With .NET6 Web API | SQL Database | Angular13
Part-2 A CRUD Operation Demo With .NET6 Web API | SQL Database | Angular13
Part-2 A CRUD Operation Demo With .NET6 Web API | SQL Database | Angular13
Part-4 A CRUD Operation Demo With .NET6 Web API | SQL Database | Angular13
Part-5 A CRUD Operation Demo With .NET6 Web API | SQL Database | Angular13
Source Code
Part-5 A CRUD Operation Demo With .NET6 Web API | SQL Database | Angular13
Source Code
Comments
Post a Comment