Ошибка компиляции при вызове ToList () при доступе многих ко многим с помощью Linq To Entities - PullRequest
0 голосов
/ 12 мая 2010

Я не могу понять, что я делаю неправильно. У меня есть следующий метод:

    public IList<WObject> GetRelationshipMembers(int relId)
    {
        var members = from r in _container.ObjectRelationships
                      where r.Id == relId
                      select r.WObjects;

        return members.ToList<WObject>();
    }

Возвращает следующую ошибку:

Instance argument: cannot convert from 'System.Linq.IQueryable<System.Data.Objects.DataClasses.EntityCollection<Project.DomainModel.Entities.WObject>>' to 'System.Collections.Generic.IEnumerable<Project.DomainModel.Entities.WObject>'

Как я могу преобразовать EntityCollection в список без отложенной загрузки?

1 Ответ

1 голос
/ 12 мая 2010

Похоже, ваш запрос возвращает последовательность наборов сущностей - список списков сущностей, как это было. Если вы хотите их сплющить. Вы пытаетесь преобразовать его в список объектов. Теперь, как вы хотите это сделать? Вы хотите объединить все коллекции в один большой список? Или взять первую запись из каждой коллекции? Вот пример, который сгладит результаты:

public IList<WObject> GetRelationshipMembers(int relId)
{
    var members = from r in _container.ObjectRelationships
                  where r.Id == relId
                  select r.WObjects;

    return members.SelectMany(x => x)
                  .ToList<WObject>();
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...