我有一个函数可以返回数据库中的所有客户端,它看起来像这样:
MyContext db = new MyContext();
db.Configuration.LazyLoadingEnabled = false;
db.Configuration.ProxyCreationEnabled = false;
var clients = db.clients.???;
我的问题是,如果存在且不为空(类似于 first 或 default 之类的 all 或 default),我如何返回所有客户端?
最佳答案
在我看来,当没有客户端时,您应该返回一个空的 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();
关于c# - EF 很多或默认,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21510730/