Вложенный LINQ, возвращающий этот метод, не может быть преобразован в исключение выражения хранилища

Следующий 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 [KernWcfTestjects.Data ]) ', , и этот метод не может быть преобразован в выражение хранилища.

Вот два класса 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. Я попытался добавить Известный Типа но не вышло.

Все это отлично работает в LINQ Pad.

Есть идеи?

Ура

Стив

5
задан svick 13 March 2012 в 11:52
поделиться