include
не работает после того, как я выбираю запрос IQueryable
. Есть ли способ обойти это? Мой запрос
public IQueryable<Network> GetAllNetworks()
{
var query = (from n in _db.NetworkSet
.Include("NetworkContacts.Contact")
.Include("NetworkContacts.Contact.RelationshipSource.Target")
.Include("NetworkContacts.Contact.RelationshipSource.Source")
select (n));
return query;;
}
Затем я пытаюсь заполнить свою ViewModel в моем слое WebUI, используя следующий код
var projectedNetworks =
from n in GetAllNetworks()
select new NetworkViewModel
{
Name = n.Name,
Contacts = from contact in networkList
.SelectMany(nc => nc.NetworkContacts)
.Where(nc => nc.Member == true)
.Where(nc => nc.NetworkId == n.ID)
.Select(c => c.Contact)
select contact,
};
return projectedNetworks;
Теперь проблема возникает в моем недавно созданном NetworkViewModel
; объекты коллекции Contacts
не содержат загруженных данных для RelationshipSource.Target
или RelationshipSource.Source
.
Однако данные есть при запуске из исходного метода репозитория IQueryable
. Однако связанные данные include
, похоже, не переносятся в новую коллекцию Contacts
, которая создается, когда я использую файл Select New NetworkViewModel {}
.
Есть ли способ сохранить эти данные Include
, когда они будут переданы в новый объект? На данный момент я просто продолжаю получать Null
исключений