gpt4 book ai didi

c# - 如何使用 linq 改进查询

转载 作者:行者123 更新时间:2023-11-29 16:24:10 24 4
gpt4 key购买 nike

我有点卡住了,我接了一个新项目,但由于查询而出现超时问题。

即使我尝试了多次,我也不知道 linq 中改进一个查询的语法。

查询是:

var contactslist = (User as CustomPrincipal).contacts;

var contacts = from m in db.ADDR_DEST.toList()
from n in contactslist
where m.ADDR_COUNTRY == n.country && m.ADDR_TPL_TYPE == n.tpl_type
select m;

但我不想在我有不同的参数之前启动此查询,因此我删除了 .toList() 以添加一些条件

contacts.where(..);

然后我想启动我的查询,但我收到一个错误,类型必须是列表<>,但在本例中它是一个 Iqueryable。

你能帮我一下吗?完成所有设置后,还有其他方法可以启动此查询吗?

最佳答案

你可以这样做:

db.ADDR_DEST.Join(contactslist, 
addr => new { country = addr.ADDR_COUNTRY, type = addr.ADDR_TPL_TYPE },
cont => new { country = cont.country, type = cont.tpl_type },
(addr, cont) => addr)
.ToList();

然后,如果您想选择满足特定要求的联系人列表:

db.ADDR_DEST.Join(contactslist.Where(...).ToList(), 
addr => new { country = addr.ADDR_COUNTRY, type = addr.ADDR_TPL_TYPE },
cont => new { country = cont.country, type = cont.tpl_type },
(addr, cont) => addr)
.ToList();

希望你觉得它有用

关于c# - 如何使用 linq 改进查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54353024/

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