Con*_*phy 9 linq-to-entities entity-framework anonymous-types include
在对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异常
但是,在您的情况下,我认为有一个比该链接文章更好的解决方法.您已经在使用视图模型了Network.非常好!这样做也可以用于联系(以及它的相关属性),并且你的急切加载问题会神奇地消失.投影始终有效.
| 归档时间: |
|
| 查看次数: |
11959 次 |
| 最近记录: |