C# Assert.AreEqual语句未成功传递-Linq2Sql转换

C# Assert.AreEqual语句未成功传递-Linq2Sql转换,c#,sql,linq,visual-studio,linq-to-sql,C#,Sql,Linq,Visual Studio,Linq To Sql,上面的语句用于测试两个断言语句: string dwQuery = // @"SELECT par.[Package_Name] Parent_Package, // Count(chld.Package_Name) as NumberOfChildren // FROM [SRS_Dim_Audit] par INNER JOIN SRS_Dim_Audit chld ON p

上面的语句用于测试两个断言语句:

string dwQuery =
//                    @"SELECT par.[Package_Name] Parent_Package,  
//                    Count(chld.Package_Name) as NumberOfChildren
//                    FROM [SRS_Dim_Audit] par INNER JOIN SRS_Dim_Audit chld ON par.Audit_Key = chld.Parent_Audit_Key
//                    WHERE par.[Package_Name] NOT LIKE 'SQL Query Sample Data' AND 
//                    par.Processing_Successful = 1 AND chld.Processing_Successful = 1
//                    GROUP BY par.[Package_Name]";
我写过:

Assert.AreEqual("SRSMasterStage_To_DW", dResultsDw.Rows[iRow][0].ToString());
Assert.AreEqual("10", dResultsDw.Rows[iRow][1].ToString());
当我运行它时,我收到一个错误,指出:

Assert.AreEqual("SRSMasterStage_To_DW", auditRecords.FirstOrDefault().Parent_Package);
Assert.AreEqual("10", auditRecords.FirstOrDefault().NumberOfChildren);
我如何引用它的要求

我知道FirstOrDefault返回Null,但这是因为包含“SQL查询示例数据”的行没有审核键,它只显示Null

有什么解决办法吗? 什么可以用来代替FirstOrDefault?如果.FirstOrDefault返回null,那么访问对象上的任何属性(如Parent\u Package或NumberOfChildren)都会产生该错误

在测试期间,您应该控制环境。如果您知道您将收到一个null,那么您应该做的唯一检查是类似Assert.IsNullauditRecords的检查

如果您知道要返回一行或多行,那么上面的断言语句就可以了

要测试null,请尝试以下未测试的内容:

"Object reference not set to an instance of an object"

大多数对象的默认值为空。以下是.

的参考,如果assert.isnull失败怎么办?有没有办法向我提供两个assert.areequal语句的转换版本?有点帮助,但是自从我提出这个问题的错误以来,我一直坚持这两个断言语句。对象引用未设置为对象的实例----------------------------------------
Assert.IsNull(auditRecords.FirstOrDefault());