오늘 열어 본 날짜의 평균 일수를 계산하는 코드가 있습니다.평균 linq에 대한 속성을 NHibernate 매핑 된 객체로 확인할 수 없습니다.
오류 메시지 : 내가 다음과 같이 내가 오류가 Linq에 람다 표현식을 사용하여 식을 실행하면 속성을 확인할 수 없습니다 : DateClosed.DateCreated을의 : TestProject.LegalWork
곳 코드입니다 :
var result = Repository.All
.Where(x => x.DateClosed != null)
.Average(x => ((DateTime)x.DateClosed - x.DateCreated).TotalDays);
어떻게하면 루프 만 사용하고 상태 만 필터하면 eveything이 제대로 작동합니다.
int number= 0;
decimal totalDays = 0;
foreach (LegalWork legalWork in Repository.All.Where(x => x.DateClosed != null))
{
totalDays += (decimal)((DateTime)legalWork.DateClosed - legalWork.DateCreated).TotalDays;
number++;
}
return (totalDays == 0 || numberOfLegalWork ==0) ? 0 : Convert.ToDecimal(totalDays/numberOfLegalWork);
Linq 및 Lambda 버전의 문제점은 무엇입니까? 그것을 당신이 linq2nhibernate의 일부가 아닌 날짜 시간의 특정 함수를 호출해야는 .NET 프레임 워크의 일부와 있기 때문에,
x.DateClosed - x.DateCreated
또는 linq2nhibernate에서 givenDate.TotalDays
:
결과에 평균을 실행하기 전에 결과를 목록으로 변환하지 않을 것입니다. – cpoDesign