2017-08-28 52 views
3

我有Store模型,如果我的模型为空,我想返回null。C#如何返回null或模型

public Store Details() => db.Store.Single(s => s.Id == 1); 

该查询有时返回一个值,有时返回null。我怎样才能确定返回类型包含两者?

+0

类引用默认是空的,所以你可以请在你想实现的目标中添加更多的描述?如果你想知道如何使用linq返回null,你可以使用SelectFirstOrDefault –

+5

检查'Enumerable'中定义的扩展方法,以及你会发现的'Single()',例如'SingleOrDefault()' –

回答

6

尝试使用

public Store Details() => db.Store.FirstOrDefault(s => s.Id == 1); 
+5

你可以尝试' SingleOrDefault()'也是;而不是'FirstOrDefault()'。 –

4

使用的SingleOrDefault而非FirstOrDefault,因为异常被抛出,如果超过一个发现

// Exception is thrown if more than one is found. (id have to be unique) 
public Store Details() => db.Store.SingleOrDefault(s => s.Id == 1); 

// does not throw exceptions 
public Store Details() => db.Store.FirstOrDefault(s => s.Id == 1);