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 GetUsersHandler(MyDbContext dbContext) { _dbContext = dbContext; } public async Task<List<User>> Handle(GetUsers request, CancellationToken cancellationToken) { var users = await _dbContext.Users.Select(u => new User { Id = u.Id, Name = u.Name, Email = u.Email, }).ToListAsync(); return users; } }
실행 및 Test
Select user (필터링된 단일 유저)
Controller 에 다음을 추가
[ProducesResponseType(typeof(User), StatusCodes.Status200OK)] [HttpGet("{id}")] public async Task<IActionResult> GetUser(string id) { if (!ModelState.IsValid) return BadRequest(ModelState); return Ok(await _mediator.Send(new GetUser { Id=id})); }
Command folder 에 GetUser.cs 파일 추가
public class GetUser : IRequest<User> { public string Id { get; set; }=string.Empty; }
Command folder 에 GetUserHandler.cs 파일 추가
public class GetUserHandler : IRequestHandler<GetUser, User> { private readonly MyDbContext _dbContext; public GetUserHandler(MyDbContext dbContext) { _dbContext = dbContext; } public async Task<User> Handle(GetUser request, CancellationToken cancellationToken) { var users = await _dbContext.Users.Where(u=>u.Id == request.Id).Select(u => new User { Id = u.Id, Name = u.Name, Email = u.Email, }).ToListAsync(); var findUser = users.FirstOrDefault(); if(findUser == null) throw new Exception($"Can not found user, id = {request.Id}"); return findUser; } }
실행 및 Test
관련영상


댓글
댓글 쓰기