在对IQueryable查询执行选择后,include不起作用.这有什么方法吗?我的疑问是
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;;
}
Run Code Online (Sandbox Code Playgroud)
然后我尝试使用以下代码在我的WebUI层中填充mya ViewModel
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;
Run Code Online (Sandbox Code Playgroud)
现在问题出现在我新创建的NetworkViewModel中.Contacts集合对象不包含RelationshipSource.Target或RelationshipSource.Source的任何已加载数据.
但是,从原始Repository IQueryable方法运行时,数据就存在.但是,相关的包含数据似乎没有转移到我使用上面的Select New NetworkViewModel {}代码时创建的新Contacts集合中.
有没有办法在传入新对象时保留此Include数据?目前我只是不断获得NULL异常