gpt4 book ai didi

entity-framework - 如果我从IQueryable中选择,那么包含将丢失

转载 作者:行者123 更新时间:2023-12-04 04:14:06 25 4
gpt4 key购买 nike

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;;
}

然后,我尝试使用以下代码在我的WebUI层中填充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;

现在,该问题出现在我新创建的 NetworkViewModel中; Contacts集合对象不包含 RelationshipSource.TargetRelationshipSource.Source的任何已加载数据。

但是,从原始存储库 IQueryable方法运行时,数据在那里。但是,相关的 include数据似乎没有转移到我使用 Contacts时创建的新的 Select New NetworkViewModel {}集合中。

当将 Include数据传递到新对象中时,是否有办法保留它?目前,我一直在获取 Null异常

最佳答案

Here's an explanation of what's happening, with a workaround
但是,就您的情况而言,我认为有一种比该链接文章中更好的解决方法。您已经在使用Network的 View 模型。那挺好的!也进行联系(以及它的相关属性),您急于加载的问题将神奇地消失。投影始终有效。

关于entity-framework - 如果我从IQueryable中选择,那么包含将丢失,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2924386/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com