라벨이 EntityFramework Core인 게시물 표시

ASPNET 6 Web Api Basic Tutorial 1 / 2 (Swagger, SeriLog, MediatR, EntityFrameworkCore, Scrutor)

이미지
작성 순서 Create Project Create Controller Add Swagger Add SeriLog Add MediatR Add EntityFramework Core Add Migration Apply Database Add Web Api  Refactoring with Extension Method 1. Create Project Create  2. Create Controller Add NewFolder to project ( Controller ) UserController.cs using Microsoft.AspNetCore.Mvc; namespace WebApiBasicTutorial.Controller { [ApiController] [Route("[controller] ")] public class UserController :ControllerBase { } } Program.cs 에 다음 코드 추가   삭제 ==>  app.MapGet( "/" , () => "Hello World!" ); 추가 ==>  builder.Services.AddControllers(); 3. Add Swagger 개발자 프롬프트에서 프로젝트 폴더로 이동  (현재 .sln 파일이 있는 폴더라면 .csproj 파일이 있는 폴더로 이동) 아래 명령 실행 dotnet add package Swashbuckle.AspNetCore Program.cs 에 다음 코드 추가 builder.Services.AddControllers(); builder.Services.AddEndpointsApiExplorer(); app.UseSwagger(); app.UseSwaggerUI(); Properties --> launchSettings.json --> "launchUrl": "swagger",...

EF Core Query

이미지
Query (None Transaction) 모든 데이터 로드 using ( var context = new BloggingContext()) { var blogs = context.Blogs.ToList(); } 단일 엔터티 로드 using ( var context = new BloggingContext()) { var blog = context.Blogs .Single(b => b.BlogId == 1 ); } 필터링 using ( var context = new BloggingContext()) { var blogs = context.Blogs .Where(b => b.Url.Contains( "dotnet" )) .ToList(); } 예제) Select all user (모든데이터) Controller 에 다음을 추가 [ProducesResponseType(typeof(List<User>), StatusCodes.Status200OK)] [HttpGet("")] public async Task<IActionResult> GetUsers() { return Ok ( await _mediator.Send( new GetUsers())); } Command folder 에 GetUsers.cs 파일 추가 public class GetUsers : IRequest<List<User>> { } Command folder 에 GetUsersHandler.cs 파일 추가 public class GetUsersHandler : IRequestHandler<GetUsers, List<User>> { private readonly MyDbContext _dbContext; public GetUsersH...

EFcore with Command

이미지
 EF Core 를 통한 Sql 제어 1. Command (Transaction) Add Controller 에 다음을 추가 [ProducesResponseType(typeof(List<User>), StatusCodes.Status200OK)] [HttpPost("")] public async Task<IActionResult> CreateUser( string id, string name, string email) { if (!ModelState.IsValid) return BadRequest (ModelState); var user = new AddUser { Id = id, Name = name, Email = email }; return Ok ( await _mediator.Send(user)); } Command folder 에 AddUser.cs 파일 추가 public class AddUser :IRequest<List<User>> { public string Id { get ; set ; } = string .Empty; public string Name { get ; set ; } = string .Empty; public string Email { get ; set ; } = string .Empty; } CommandHandler folder 에 AddUserHandler.cs 파일 추가 public class AddUserHandler : IRequestHandler<AddUser, List<User>> { private readonly MyDbContext _dbContext; public AddUserHandler (MyDbContext db...

EntityFramework Core (DotNet에서 Persistence storage 를 관리 하는 일반적인 방법)

이미지
 EntityFramework Core Dotnet 에서는 Database 를 관리 하는 일반적인 방법으로 EntityFrameworks core 가 있다. EF Core는 다음과 같은 O/RM(개체 관계형 매퍼)으로 사용될 수 있다. .NET 개발자가 .NET 개체를 사용하여 데이터베이스로 작업할 수 있도록 한다. 개발자가 일반적으로 작성해야 하는 대부분의 데이터 액세스 코드가 필요하지 않다. 지원하는 Database 는 링크를 참조하자. https://docs.microsoft.com/ko-kr/ef/core/providers/?tabs=dotnet-core-cli 설치 1. mssql 에 대한 DB 공급자 설치 dotnet add package Microsoft.EntityFrameworkCore.SqlServer 2. EF 관련도구 설치 dotnet tool install --global dotnet-ef  ** 업데이트가 필요하다면 dotnet tool update 명령을 사용한다. ** dotnet tool update --global dotnet-ef 3. EF design 패키지 설치 dotnet add package Microsoft.EntityFrameworkCore.Design 패키지 설치시 오류가 발생하면 Solution Explorer -> 프로젝트 선택 --> Dependencies --> packages 를 마우스 오른쪽 버튼클릭 context menu 에서 Manage nuget packages 선택 Microsoft.EntityFrameworkCore.Design 검색 후 설치 하자  **항상 런타임 패키지의 주 버전에 부합하는 도구 패키지 버전을 사용하자.** Context 추가 및 Model 추가 1. Infrastructure folder 추가 2. MyDbContext.cs 추가 public class MyDbContext :DbContext { p...