【问题标题】:Is a good practice to instantiate IQueryable query inside constructor在构造函数中实例化 Iqueryable 查询是一个好习惯
【发布时间】:2022-11-14 18:06:10
【问题描述】:

这只是一个问题...可以在构造函数(使用依赖注入)中实例化 IQueryable 谓词以便始终定义 IQueryable 基类?

我的意思是

IQuerable<T> query;
public SomeClass(IRepository<T> repo)
{
 query = repo.GetQuerable().Where(c=>!c.IsDeleted)
}

然后在其他函数中使用查询语句

还是最好每次用的时候都做query predicate init?

【问题讨论】:

  • 我能给出的最佳答案是......“这取决于”。这取决于你想做什么,其他方法会做什么?我们需要更多信息才能真正回答这个问题。即使这样,您的问题也可能在很大程度上取决于回答者的意见。

标签: .net


【解决方案1】:

简短的回答:这取决于

长答案:

从可测试性、性能和稳定性的角度来看;为 cpu 和内存密集型任务定义一个单独的方法,并使构造函数保持简单和轻量级。为什么?因为它确保对象实例化是快速的并且不会抛出任何异常。

它还涉及关注点分离和渴望与延迟加载的主题。做一些阅读并做对您的特定用例有意义的事情。

【讨论】:

    猜你喜欢
    • 2019-02-01
    • 2021-04-11
    • 1970-01-01
    • 2016-12-11
    • 1970-01-01
    • 1970-01-01
    • 2020-03-13
    • 1970-01-01
    • 2010-09-11
    相关资源
    最近更新 更多