我有返回数据库中所有客户端的函数,它看起来像这样:
MyContext db = new MyContext();
db.Configuration.LazyLoadingEnabled = false;
db.Configuration.ProxyCreationEnabled = false;
var clients = db.clients.???;
我的问题是,如果存在且如果不为null,我该如何返回所有客户端(类似于第一个或默认的类似全部或默认的东西)?
答案 0 :(得分:2)
在我看来,如果没有客户端,你应该返回一个空IEnumerable
而不是null。
但如果你坚持,你可以做以下事情:
var clients = db.clients.AsEnumerable();
return clients.Any() ? clients : null;
如果这是你计划做的很多事情,你可以把它变成这样的扩展方法:
public static class DbExtensions
{
public static IEnumerable<T> ManyOrNull<T>(this IEnumerable<T> elements)
{
return elements.Any() ? elements: null;
}
}
然后在你的另一种方法中你可以写:
return db.clients.ManyOrNull();
答案 1 :(得分:2)
试一试。
var hasClients = db.clients.Any();
if (hasClients)
{
//TODO: If exist;
var list = db.clients.ToList();
}
else
{
//Default: Null
}