实体框架或默认值类型



我有一个带有 Where 子句的 LINQ 查询,该子句可以返回单个实体,也可以返回任何实体。我只对单个属性感兴趣,所以我会使用选择,然后是单或默认(异步(。

但是,我感兴趣的属性是值类型。是否可以以这样一种方式执行查询,即当查询未返回任何结果时,我可以获得可为 null 的类型,而不是默认值?

我当然可以查询整个对象,并且只返回一个属性,但我想知道是否有更好的方法。

可以使用

Select将值类型强制转换为可为 null 的类型,使其为 null 而不是默认值。

List<int> numbers = new List<int>();
// this will be null
var number1 = numbers.Select(x => (int?)x).SingleOrDefault();
// this will be default value which is zero
var number2 = numbers.SingleOrDefault();

最新更新