Следующий LINQ:
retval = ( from jm in entities.JobMasters
where jm.UserId == userId && jm.IsRemote == false
select new JobDto
{
JobMasterId = jm.JobMasterId,
ExternalTaskId = jm.ExternalTaskId,
JobDetails = ( from jd in entities.JobDetails
where jd.JobMasterId == jm.JobMasterId
select new JobDetailDto { ScreenFieldId = jd.ScreenFieldId, FieldValue = jd.FieldValue }
).ToList()
}
).ToList();
дает мне эту ошибку:
LINQ to Entities не распознает метод
«System.Collections.Generic.List`1 [KernWcfTest.DataTransferObjects.JobDetailDto]
Метод ToList [JobDetailDto] (System.Collections.Generic.IEnumerable`1 [KernWcfTest.DataTransferObjects.JobDetailDto]) ',
и этот метод не может быть переведен в выражение магазина.
Вот два класса dto:
[DataContract]
public class JobDetailDto
{
[DataMember]
public int ScreenFieldId { get; set; }
[DataMember]
public string FieldValue { get; set; }
}
[DataContract]
[KnownType(typeof(JobDetailDto))]
public class JobDto
{
[DataMember]
public int JobMasterId { get; set; }
[DataMember]
public string ExternalTaskId { get; set; }
[DataMember]
public List<JobDetailDto> JobDetails { get; set; }
}
Проблема заключается в дополнительном выборе и списке JobDetails. Я попытался добавить KnownType, но это не сработало.
Все это прекрасно работает в LINQ Pad.
Есть идеи?
Приветствия
Steve