gpt4 book ai didi

c# - LINQ,Left Join,抛出异常...失败,因为物化值为 null

转载 作者:太空狗 更新时间:2023-10-29 23:48:24 26 4
gpt4 key购买 nike

我很困惑,我该如何解决这个问题?我查询中的 ProductAvailability 表没有找到的每个产品的记录,每次运行它时都会抛出以下错误。

The cast to value type 'DateTime' failed because the materialized value is null. Either the result type's generic parameter or the query must use a nullable type.

如何修复此错误?我尝试将 paj.DateAvailable 强制转换为 (DateTime?) 并检查是否为空,但这似乎无法解决问题。嗯?

这是我的查询。有什么想法吗?

var query = (from p in entities.Products
join pa in entities.ProductAvailabilities on p.ProductId equals pa.ProductId into joinProductAvailabilities
from paj in joinProductAvailabilities.DefaultIfEmpty()
where ps.IsActive
select new { ProductId = p.ProductId, DateAvailable = paj.DateAvailable }).Distinct();

最佳答案

您可以尝试显式声明结果的类型。

public class MyProductQueryResult
{
public int ProductId {get;set;}
public DateTime? DateAvailable {get;set;}
}


from p in entities.Products
from paj in p.ProductAvailabilities.DefaultIfEmpty()
select new MyProductQueryResult()
{ProductId = p.ProductId, DateAvailable = paj.DateAvailable}

既然一切都很好而且明确,这应该可以正确输入。但是,有人会认为转换 paj.DateAvailable 就足够了,因此您的情况可能还有更多内容。

关于c# - LINQ,Left Join,抛出异常...失败,因为物化值为 null,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4098262/

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