gpt4 book ai didi

c# - Linq where子句查找错误实体的属性

转载 作者:太空狗 更新时间:2023-10-30 00:41:45 24 4
gpt4 key购买 nike

您好,我有以下 Linq 查询:

(from c in new_contactsubscriptionSet
join p in new_PaymentStatusSet
on c.new_PaymentStatusId.Id equals p.new_PaymentStatusId
where (c.new_EndDate > DateTime.Now &&
c.new_EndDate <= DateTime.Now.AddDays(14)) &&
p.new_IsPaidStatus == false
select c)

它抛出以下 FaultException 这意味着它的检查属性 new_ispaidstatus 错误的实体。它应该检查 new_PaymentStatus 而不是 new_contactsubscription

故障异常

“new_contactsubscription”实体不包含名称为“new_ispaidstatus”的属性。

如果我使用以下查询,它的工作正常:

(from c in new_contactsubscriptionSet
join p in new_PaymentStatusSet
on c.new_PaymentStatusId.Id equals p.new_PaymentStatusId
where p.new_IsPaidStatus == false
select c)

(from c in new_contactsubscriptionSet
join p in new_PaymentStatusSet
on c.new_PaymentStatusId.Id equals p.new_PaymentStatusId
where (c.new_EndDate > DateTime.Now &&
c.new_EndDate <= DateTime.Now.AddDays(14))
select c)

看起来 Where 子句有问题。谁能帮我解决这个问题。

提前致谢

最佳答案

每个实体都需要不同的位置。

(from c in new_contactsubscriptionSet
join p in new_PaymentStatusSet
on c.new_PaymentStatusId.Id equals p.new_PaymentStatusId
where (c.new_EndDate > DateTime.Now && c.new_EndDate <= DateTime.Now.AddDays(14))
where p.new_IsPaidStatus == false
select c)

这是由于 Microsoft 将 Linq 查询映射到查询表达式的方式。它试图将一个位置映射到它唯一的过滤条件中,但这些是在实体到实体的基础上应用的。因此,它正在确定所使用的所有属性的名称,并针对它评估的第一个表达式的实体为其创建过滤器。

有了多个 where's,它会更新第二个链接实体的过滤器,而不是盲目地将它添加到第一个。

关于c# - Linq where子句查找错误实体的属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18850280/

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