如果实体不存在,为什么存储库 "Get" 和 "GetAsync" 方法会抛出 EntityNotFoundException 而不是返回 null?
Why repository "Get" and "GetAsync" methods throw EntityNotFoundException instead of returning null if the entity doesn't exists?
使用 module-zero-core-template(完全更新),我最近在用户要求删除帐户时遇到问题(这是第一次),我的代码中的很多地方都得到 "User" 实体使用 Repository.Get(TPrimaryKey id) 或 Repository.GetAsync(TPrimaryKey id):
var user = _userRepository.Get(model.UserId);
直到现在我还没有意识到当实体不存在时它会抛出异常,但我不得不用(或等效的异步)替换所有调用:
var user = _userRepository.FirstOrDefault(u => u.Id == model.UserId);
我的代码不是用来处理这种异常的,而是 return 中的空值。
我的问题是:
- 为什么是异常而不是空值 returned?
- 有没有办法修改这种行为?
提前致谢。
使用 module-zero-core-template(完全更新),我最近在用户要求删除帐户时遇到问题(这是第一次),我的代码中的很多地方都得到 "User" 实体使用 Repository.Get(TPrimaryKey id) 或 Repository.GetAsync(TPrimaryKey id):
var user = _userRepository.Get(model.UserId);
直到现在我还没有意识到当实体不存在时它会抛出异常,但我不得不用(或等效的异步)替换所有调用:
var user = _userRepository.FirstOrDefault(u => u.Id == model.UserId);
我的代码不是用来处理这种异常的,而是 return 中的空值。
我的问题是:
- 为什么是异常而不是空值 returned?
- 有没有办法修改这种行为?
提前致谢。