【发布时间】:2021-12-31 22:05:14
【问题描述】:
我希望这个问题尊重 StackOverflow 准则。
我的数据库(SQL Server 管理工作室)中有一个表(ResultsTable),其中的列是:
ID (PK, FK, int, not null)
RiskRate (PK, int, not null)
FileName (PK, nvarchar(100), not null)
在 C# 中,我使用了 EF。在我的代码中,有一个方法SelectFileNames(string fileName):
var resultSearch = (from result in DB.ContextManagement.ResultTable
where result.FinaName.compareTo(fileName) == 0
select result).FirstOrDefault();
if (resultSearch == null)
...
else
...
FirstOrDefault() 方法有这样的描述:
Returns the first element of the sequence that satisfies a condition
or a default value (TSource) if no such element is found.
那么,如果没有具有该文件名的元素,我如何强制FirstOrDefault() 返回null?注意:在我的表ResultTable 中,列具有not null 约束。
谢谢。
【问题讨论】:
-
如果
result是引用类型,则返回null。 -
resultSearch 是 ResultTable 类型。 result 也是 ResultTable 类型。
-
C# 中有引用类型 (
class) 和值类型 (struct)。没有 ResultTable 类型这样的东西。那可能是一个类型的name? -
是的,这是一个引用类型。 :P 列的可空性与此处无关。在极少数情况下,您选择了不可为空的值类型,但您仍然想要
null结果,您可以在.FirstOrDefault()之前插入Cast<int?>()或类似的东西。 -
你真的检查过它是否返回
null吗?它应该这样做
标签: c# sql-server