이것은 데이터를 가져 오는 내 코드입니다.LINQ to Entities가 메서드를 인식하지 못합니다.
var list = (from u in _dbContext.Users
where u.IsActive
&& u.IsVisible
&& u.IsPuller.HasValue
&& u.IsPuller.Value
select new PartsPullerUsers
{
AvatarCroppedAbsolutePath = u.AvatarCroppedAbsolutePath,
Bio = u.Bio,
CreateDateTime = u.CreationDate,
Id = u.Id,
ModifieDateTime = u.LastModificationDate,
ReviewCount = u.ReviewsReceived.Count(review => review.IsActive && review.IsVisible),
UserName = u.UserName,
Locations = (from ul in _dbContext.UserLocationRelationships
join l in _dbContext.Locations on ul.LocationId equals l.Id
where ul.IsActive && ul.UserId == u.Id
select new PartsPullerLocation
{
LocationId = ul.LocationId,
Name = ul.Location.Name
}),
Rating = u.GetPullerRating()
});
이제 내 확장 프로그램입니다.
public static int GetPullerRating(this User source)
{
var reviewCount = source.ReviewsReceived.Count(r => r.IsActive && r.IsVisible);
if (reviewCount == 0)
return 0;
var totalSum = source.ReviewsReceived.Where(r => r.IsActive && r.IsVisible).Sum(r => r.Rating);
var averageRating = totalSum/reviewCount;
return averageRating;
}
나는이 게시물 LINQ to Entities does not recognize the method
을 확인하고 난
public System.Linq.Expressions.Expression<Func<Row52.Data.Entities.User, int>> GetPullerRatingtest
그러나 방법을 사용할 필요가 알게? 감사합니다
개체를 만들기 위해 복잡한 계산을하기 전에 데이터베이스에서 항목을로드하려면'ToList()'를 호출하면됩니다. – Jonesopolis
@Jonesy 고마워요. – ujjaval
무관계 .. 솔직히 말해서이 코드를 루프로 리팩터링해야한다고 생각합니다. –