最近几天我正试图找到一种方法来实现这个结果之王。 我有实体框架功能
_context.Playlists.Find(playlistId)
播放列表 - 是我的实体Dbset。
查找() - 查找具有给定主键值的实体(如果找到),附加到上下文并返回。如果在上下文或商店中找不到实体,则返回null。
playlistId - 我正在寻找的播放列表ID。
当然我可以在每个函数中检查它,但是我有很多这样的函数,我使用Find()和各种实体,所以我想保持代码干净而不重复逻辑。
我想编写一个函数来检查它是否为null。 基本上我想做的是:
MethodToCheckIfNotNull(_context.Playlists.Find(playlistId));
因此,如果它为null,则会抛出异常,如果它不为null,则返回Entity。 任何人都可以提供一个例子,我该如何实现这一目标?
答案 0 :(得分:1)
据我了解,您正在寻找像这样的generic method:
public T MethodToCheckIfNotNull<T>(Func<T> function) where T : class {
var entity = function();
if(entity == null) throw new MyException();
return entity;
}
此方法接受通用Func,它可以以懒惰的方式执行。
使用:
var notNull = MethodToCheckIfNotNull(() => _context.Playlists.Find(playlistId));