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
исключений