我已经为我的项目采用了存储库/服务设计模式,并且在构建它时,我自言自语。
获取存储库的所有项目(将其保存在缓存中)然后使用 LINQ 过滤而不是每次调用都使用数据库连接会更好吗?
例如,我有这个:
public Asset Get(int id)
{
return GetAll().Where(a => a.Id == id).FirstOrDefault();
}
public IList<Asset> GetAll()
{
return AssetData.Get(userId, companyId);
}
代替:
public Asset Get(int id)
{
return AssetData.Get(id, userId, companyId);
}
public IList<Asset> GetAll()
{
return AssetData.Get(userId, companyId);
}
我认为第一个是最好的,因为它会加快系统速度,并且会减少数据库连接/查询。
那么,任何人都可以向我解释一下这种情况的最佳做法是什么?