【发布时间】:2020-04-12 13:21:53
【问题描述】:
工作单元/存储库并不是真正的最佳实践。
它们以隐藏 EF Core 而闻名,性能不佳。
我有一些想要实现的目标:
- 存储查询(所以我不必每次都重写)
- 轻松访问
我想过使用静态扩展方法来提供这样的查询:
UserEntity.GetUserById(int userId, _dbContext)
public static GetUserById(int userId, _dbContext) =>
_dbContext.Set<UserEntity>().where(x=> x.userId == userId)
我知道不建议使用静态。但我认为将它用于无状态查询没有任何问题。而且我会将它们直接捆绑到实体上,因此很容易找到。
Q1:当我在静态扩展方法中存储大量查询时,会不会出现问题?
Q2:有比工作单元/存储库更好的模式吗?
将查询存储在实体本身不是我的选择,因为我与 Blazor 项目共享实体。
【问题讨论】:
-
你应该阅读Wikipedia's article on Cargo Cult Programming。特别注意第二段。
标签: c# .net-core entity-framework-core static