현재 여러 테이블이 있지만 관련 테이블은 Restaurant
및 Review
입니다. 각 레스토랑은 여러 개의 리뷰를 가질 수 있지만 리뷰에는 1 개의 레스토랑 만 있습니다.Entity Framework의 다른 테이블에서 평균 가져 오기
이제 데이터베이스에서 레스토랑을 검색 할 때 각 레스토랑의 리뷰에서 평균 등급을 원합니다.
나는 주어진 위치까지의 거리에 따라 음식점을 선택한다.
현재, 나는 여기까지 입수했습니다 :
public IEnumerable<Restaurant> GetRestaurantsCloseToCoords(DbGeography coordinates, int amountOfRestaurants)
{
using (var ctx = _context)
{
var data = ctx.Restaurants.OrderBy(x => x.Address.Coordinates.Distance(coordinates))
.Take(amountOfRestaurants)
.ToList();
return data;
}
}
내 레스토랑 객체는 다음과 같습니다
public class Restaurant
{
public Guid Id { get; set; }
public string Name { get; set; }
public Address Address { get; set; }
public List<Tag> Tags { get; set; } = new List<Tag>();
public int PriceRange { get; set; }
public double AverageRating { get; set; }
}
내가 그 목록의 각 레스토랑에 대한 루프를 사용하고 평균을 계산할 수 있습니다, 그러나 나는 그것이 매우 느리다라고 꽤 확신한다.
나를 도울 수있는 사람이 있습니까? 나는 이것을 LINQ에 유지하고 싶지만, 다른 테크니크들은 완전히 괜찮습니다!
더 자세히 설명해야한다면 미리 알려주세요.
고마워요! EF에 대한 많은 경험이 없지만 추천/링크 할 수있는 것이 있습니까? – RandomStranger
반드시 EF에 관한 것은 아닙니다. C#에 익숙하다면 Windows 서비스를 작성하는 방법과 그 서비스를 예약하는 방법을 확인해야합니다. 현재와 동일한 방식으로 데이터베이스와 통신 할 수 있습니다. – bit
괜찮을 것입니다, 고마워요! – RandomStranger