Линк к объектам: приведите результат к нескольким перечисленным сложным типам - PullRequest
0 голосов
/ 18 января 2011

Я пытаюсь создать один запрос linq, который заполняет следующие модели в конструкторе CompanyViewModel:

public class CompanyViewModel
{
    public IList<CompanyUserViewModel> CompanyUsers { get; set; }
    ...
}

public class CompanyUserViewModel
{
    public User User { get; set; }
    public IList<UserOperationViewModel> UsersOperations { get; set; }
}

public class UserOperationViewModel
{
    public Operation Operation { get; set; }
    public int Permission { get; set; }
}

В настоящее время у меня есть следующий запрос:

return db.Users.Where(u => u.CompanyId == companyId)
               .Select(u => new CompanyUserViewModel { 
                    User = u,
                    UsersOperations = db.UsersInOperations
                        .Where(uo => uo.UserId == uo.UserId)
                        .Select(uo => new UserOperationViewModel{
                             Operation = uo.Operation,
                             Permission = uo.Permission
                        }).ToList()
                }).ToList();

Какая сборка, но при запуске страницы я получаю

LINQ to Entities does not recognize the method 'System.Collections.Generic.List`1[WoodCo.Models.BusinessObject.UserOperationViewModel] ToList[UserOperationViewModel](System.Collections.Generic.IEnumerable`1[WoodCo.Models.BusinessObject.UserOperationViewModel])' method, and this method cannot be translated into a store expression.

Что делать?

1 Ответ

1 голос
/ 18 января 2011

Измените свойства модели представления, чтобы использовать IEnumerable<T> вместо IList<T, и удалите вызовы .ToList().

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...