gpt4 book ai didi

c# - LINQ 查询问题,序列不包含任何元素

转载 作者:太空狗 更新时间:2023-10-29 19:49:53 27 4
gpt4 key购买 nike

我试图更新表中的单个记录,但是当我运行 .Firstordefault() 时,我收到错误:“对象引用未设置为对象的实例。” ,如果将它与 .First() 一起使用,我会得到“序列不包含任何元素”。

在另一个地方使用它,它工作正常,但这次它导致错误。

代码如下:

public class AllownceDetails
{
public int ta_id{get;set;}
public int tvrid{get;set;}
public DateTime ofDate{get;set;}
public string status{get;set;}
public string userid {get;set;}
}
//Update Method
public void Update(AllownceDetails Allowncedtl)
{

var ta = (from a in ce.tbl_tvrallownce
where a.tvrid == Allowncedtl.tvrid
//error: Sequence contains no elements

select a).SingleOrDefault();

ta.status = Allowncedtl.status;
//error:Object reference not set to an instance of an object
ce.SaveChanges();


}

最佳答案

查询不得返回任何数据。在 SQL 数据库上运行分析器以查看正在执行的物理查询,并尝试针对数据库手动执行它以查看数据的外观。您可能必须调整查询(或数据)才能获得所需的结果。

“序列不包含任何元素”基本上是 LINQ 告诉您您正在尝试引用列表中没有任何元素的元素的方式。因此调用 .First().Single() 找不到任何东西,因此出现错误。

当您将调用更改为 .FirstOrDefault().SingleOrDefault() 时,它将使用该类型的“默认”值,供引用types 默认为 null。因此,如果您将某些内容设置为 null,然后尝试对其调用方法,您将得到 object reference not set to an instance of an object

关于c# - LINQ 查询问题,序列不包含任何元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9907963/

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