개발/ASP.NET
[WebApp/MVC] EF Core와 LINQ를 사용하여 데이터 가져오기
향포레스트
2023. 10. 30. 18:27
728x90
MVC : Cotroller
public class ProjectController : Controller
{
private readonly MyDBContext _context;
public ProjectController(MyDBContext context, IConfiguration configuration)
{
_context = context;
}
}
Entity의 모든 데이터 가져오기
var project = _context.BackgroundProjects.ToList();
Entity의 모든 데이터 가져오기 - 검색 필터
var toyproject = _context.BackgroundProjects.Where(p => project == "TOY").ToList();
1개 Entity 가져오기
var project = _context.BackgroundProjects.FirstOrDefault(p => p.ProjectId == projectId);
JOIN
INNER JOIN
var skillQuery = (from mapping in _context.BackgroundProjectSkillMappings
join skills in _context.BackgroundTechnicalSkills
on mapping.SkilId equals skills.SkilId
where mapping.ProjectId == projectId
orderby mapping.SortOrder
select new
{
mapping.ProjectId,
mapping.SortOrder,
skills.SkilIname
});
var skill = skillQuery.ToList();
💡단순 검색 조건을 넣을 때
var query = from photo in context.Set<PersonPhoto>()
join person in context.Set<Person>()
on new { Id = (int?)photo.PersonPhotoId, photo.Caption }
equals new { Id = person.PhotoId, Caption = "SN" }
select new { person, photo };
LEFT JOIN
var query = from b in context.Set<Blog>()
join p in context.Set<Post>()
on b.BlogId equals p.BlogId into grouping
from p in grouping.DefaultIfEmpty()
select new { b, p };
참고 자료
LINQ :
https://learn.microsoft.com/ko-kr/ef/core/querying/
복합 쿼리 :
https://learn.microsoft.com/ko-kr/ef/core/querying/complex-query-operators
728x90