实体框架OrDefault值类型

时间:2018-04-13 11:37:12

标签: c# asp.net entity-framework linq entity-framework-6

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

但是,我感兴趣的属性是值类型。是否可以以这样的方式执行查询:当查询没有返回结果时,我可以获得可为空的类型而不是默认值?

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

1 个答案:

答案 0 :(得分:2)

您可以使用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();