有人可以告诉我以下两个LINQ语句的区别吗?
var ChkUnique = DB.BusinessFile.FirstOrDefault(c => c.ROCNo == txtBoxID.Text);
Run Code Online (Sandbox Code Playgroud)
和
var ChkUnique = from c in DB.BusinessFile
where c.ROCNo == (string)txtBoxID.Text
select c;
Run Code Online (Sandbox Code Playgroud)
ChkUnique != nullfalse当找不到匹配时返回顶部的那个,true对于后者,我无法弄清楚为什么会发生这种情况.
我是LINQ的新手,所以我可能错过了一些非常基本的东西但是它让我疯狂.
And*_*ber 10
第二个代码返回一个表示您正在调用的查询的对象; 它永远不会是空的.虽然一旦枚举,它可能是一个空集合.(但仍然不是空的)
您的第一个是调用FirstOrDefault,它将单个结果强制转换为单个变量,如果没有结果则返回null.如果你做Where的不是FirstOrDefault,你将有同样的结果两次.