IEnumerable, чтобы перечислить внутри linq вопрос

Я пытаюсь управлять этим вопросом, где я пытаюсь принести категории и там sub категории

studentCont.ContinuumCategories = db.continuumcategorymasters
    .Where(x => x.AssessmentId == assessmentId && x.ContinuumCategory != "other")
    .Select(x => new ContinuumCategory()
    {
        AssessmentId = x.AssessmentId,
        ContinuumCategoryId = x.ContinuumCategoryId,
        NativeAppid = x.NativeAppCategoryId,
        score = 0,
        ContinuumCategoryName = x.ContinuumCategory,
        ContinuumSubCategories = x.continuumsubcategorymasters
            .Select(csc => new ContinuumSubCategory
            {
                ContinuumSubCategoryId = csc.ContinuumSubCategotyId,
                ContinuumSubCategoryName = csc.ContinuumSubCategotyName,
                NativeAppsubid = csc.NativAppSubCategotyId
            })
    })
    .ToList();

В настоящее время область ContinuumCategory. ContinuumSubCategories имеет тип Список , таким образом, этот вопрос дает мне ошибку времени компиляции, которую это не может преобразовать IEnumerable , чтобы перечислить, конечно это не может.

И поскольку linq не признает ToList метод, таким образом, я не могу даже использовать ту внутреннюю часть мой вопрос.

Я могу решить свою проблему, изменив тип ContinuumCategory. ContinuumSubCategories , чтобы IEnumerable , но я уже использовал эту область во многих местах, где это использует Список. Добавьте метод, таким образом, я должен буду заменить все Добавить методы, чтобы IEnumerable. Concat , таким образом, это может быть утомительно.

Там какая-либо работа должна непосредственно получить список континуума sub, категории от linq подвергают сомнению только?

Отредактируйте:

когда я использую этот вопрос (используемый ToList() метод в вопросе для ContinuumSubCategories),

studentCont.ContinuumCategories = db.continuumcategorymasters
    .Where(x => x.AssessmentId == assessmentId && x.ContinuumCategory != "other")
    .Select(x => new ContinuumCategory()
    {
        AssessmentId = x.AssessmentId,
        ContinuumCategoryId = x.ContinuumCategoryId,
        NativeAppid = x.NativeAppCategoryId,
        score = 0,
        ContinuumCategoryName = x.ContinuumCategory,
        ContinuumSubCategories = x.continuumsubcategorymasters
            .Select(csc => new ContinuumSubCategory
            {
                ContinuumSubCategoryId = csc.ContinuumSubCategotyId,
                ContinuumSubCategoryName = csc.ContinuumSubCategotyName,
                NativeAppsubid = csc.NativAppSubCategotyId
            }).ToList()
    })
    .ToList();

Я получаю это исключение

 LINQ to Entities does not recognize the method 'System.Collections.Generic.List1[BusinessObjects.ContinuumSubCategory] ToList[ContinuumSubCategory]
    (System.Collections.Generic.IEnumerable1[BusinessObjects.ContinuumSubCategory])' method, and this method cannot be translated into a store expression.
0
nl ja de
@TimSchmelter - Я отредактировал вопрос с большей информацией, пожалуйста, проверьте.
добавлено автор Pawan Nogariya, источник
"поскольку linq не признает метод ToList, таким образом, я не могу даже использовать ту внутреннюю часть мой вопрос" Да ведь вы получаете исключение?
добавлено автор Tim Schmelter, источник

1 ответы

Не звоните ToList() на внутреннем вопросе (тот для ContinuumSubCategories )

Разделитесь ваш вопрос в два расстается с ToList() промежуток:

studentCont.ContinuumCategories = db.continuumcategorymasters
    .Where(x => x.AssessmentId == assessmentId && x.ContinuumCategory != "other")
    .ToList() //Fetch all the data from the db
    .Select(x => new ContinuumCategory
    {
        AssessmentId = x.AssessmentId,
        ContinuumCategoryId = x.ContinuumCategoryId,
        NativeAppid = x.NativeAppCategoryId,
        score = 0,
        ContinuumCategoryName = x.ContinuumCategory,
        ContinuumSubCategories = (x.continuumsubcategorymasters
            .Select(csc => new ContinuumSubCategory
            {
                ContinuumSubCategoryId = csc.ContinuumSubCategotyId,
                ContinuumSubCategoryName = csc.ContinuumSubCategotyName,
                NativeAppsubid = csc.NativAppSubCategotyId
            })).ToList()
    }).ToList();

Это работает?

0
добавлено
броски это исключение "Уже есть открытый DataReader, связанный с этой Связью, которая должна быть закрыта сначала".: (
добавлено автор Pawan Nogariya, источник
Я собирался добавить комментарий, что за ToList() следовали и видел ваш комментарий:)
добавлено автор Pawan Nogariya, источник
Вы попробовали ToList() вместо AsEnumerable() ?
добавлено автор Cédric Bignon, источник