C# 在linq分组选择最新记录的列列表时,如何防止“对象引用未设置为对象的实例”?

C# 在linq分组选择最新记录的列列表时,如何防止“对象引用未设置为对象的实例”?,c#,entity-framework,linq,C#,Entity Framework,Linq,无法获取任何记录。引发错误: 中发生“System.NullReferenceException”类型的异常 DAL.dll,但未在用户代码中处理其他信息: 对象引用未设置为对象的实例 考虑到下列记录: Id No createdDate Extension -------------------------------------------------- 1 9000 1990 1

无法获取任何记录。引发错误:

中发生“System.NullReferenceException”类型的异常 DAL.dll,但未在用户代码中处理其他信息: 对象引用未设置为对象的实例

考虑到下列记录:

Id          No            createdDate    Extension
 --------------------------------------------------
   1           9000          1990           10
   2           9000          1990           11
   3           9000          2000           12
   4           9849          2001           1
   5           9849          2002           2 
   6           9700          2010           4

var res = from cust in Customers
                      group cust by cust.No
                        into groups
                       select groups.OrderByDescending(p => p.Id).FirstOrDefault();
其中,同样的概念应用于控制器操作方法,如下所示。然后,不获取任何空错误,按照我的要求获取记录

var result = from refC in _objRefCustomerBS.GetAllRefCustomer()
                         group refC by refC.MobileNo into grp
                         select grp.OrderByDescending(g => g.cuRefID).FirstOrDefault();
我想根据No字段和sort by Id进行分组,并从组的最后一条记录中获取与这些记录类似的所有字段:

Id          No            createdDate    Extension
 -------------------------------------------------  
   3           9000          2000           12   
   5           9849          2002           2 
   6           9700          2010           4

我在查询中看到的唯一问题是,您将cust指定为Customers中项目的变量名,但随后将元素分组,我甚至不确定该元素是什么,因为它没有在您提供的代码段中声明

因此,请修复命名,然后您就可以开始了:

var res = from cust in Customers
        group cust by cust.No
        into groups
        select groups.OrderByDescending(p => p.Id).FirstOrDefault();

很抱歉,我在cust端错误地写入了元素..但在我的代码中是相同的..lambda版本:var res=Customers.GroupByx=>x.No.Selectx=>x.ToList.orderbygenderingy=>y.Id.First.ToList@Mehrdad Dowlatabadi I根据您的查询更新了其相同的异常引发。