나는이 일을 할 수있는 방법이 있음을 알고 있지만 알아 내려고 노력하면서 벽에 머리를 치고있었습니다. 이것은 잘 작동합니다 :linq을 사용하여 익명의 대표자를 선택하십시오
private GenericRecord CreateGeneric(GenericRecord g, Member m)
{
g.Member = m;
return g;
}
public IList<GenericRecord> ReportFromDatabase(DateTime startDate, DateTime endDate)
{
List<GenericRecord> returnRecords = new List<GenericRecord>();
returnRecords.AddRange(from r in pjRepository.Records
join m in memberRepository.Members on r.SID equals m.MemberId.ToString()
where r.TransactionDate >= startDate && r.TransactionDate <= endDate
select CreateGeneric((GenericRecord)r, m));
return returnRecords;
}
그러나 CreateGeneric 기능 없이는 할 수있는 방법이 있습니다. 델리게이트 함수를 인라인으로 어떻게 선택합니까? 나에게이 예외를 제공
returnRecords.AddRange(from r in pjRepository.Records
join m in memberRepository.Members on r.SID equals m.MemberId.ToString()
where r.TransactionDate >= startDate && r.TransactionDate <= endDate
select (delegate
{
GenericRecord g = (GenericRecord)r;
g.Member = m;
return g;
}));
:
The type of the expression in the select clause is incorrect. Type inference failed in the call to 'Select'.
편집 : 명령문과
람다 식을 : 또 다른 실패 시도는
returnRecords.AddRange((from r in pjRepository.Records join m in memberRepository.Members on r.SID equals m.MemberId.ToString() where r.TransactionDate >= startDate && r.TransactionDate <= endDate select new { r, m }).Select(x => { GenericRecord g = (GenericRecord)x.r; g.Member = x.m; return g; }));
이 나에게주는 비 ody는 표현식 트리로 변환 될 수 없습니다.
브릴리언트! 고맙습니다! –