相关疑难解决方法(0)

什么是依赖注入?

已经发布了几个关于依赖注入的具体问题的问题,例如何时使用它以及它有哪些框架.然而,

什么是依赖注入以及何时/为什么应该或不应该使用它?

language-agnostic design-patterns dependency-injection terminology

2984
推荐指数
25
解决办法
80万
查看次数

何时在C#中使用静态类

以下是MSDN在何时使用静态类时要说的内容:

static class CompanyInfo
{
    public static string GetCompanyName() { return "CompanyName"; }
    public static string GetCompanyAddress() { return "CompanyAddress"; }
    //...
}
Run Code Online (Sandbox Code Playgroud)

使用静态类作为与特定对象无关的方法的组织单位.此外,静态类可以使您的实现更简单,更快,因为您不必创建对象来调用其方法.以有意义的方式组织类中的方法很有用,例如System命名空间中Math类的方法.

对我来说,这个例子似乎并没有涵盖静态类的很多可能的使用场景.在过去,我已经将静态类用于相关函数的无状态套件,但这就是它.那么,在什么情况下应该(而且不应该)将一个类声明为静态?

c# static class

605
推荐指数
9
解决办法
45万
查看次数

每个网络请求一个DbContext ...为什么?

我一直在阅读很多文章,解释如何设置实体框架,DbContext以便每个HTTP Web请求只使用各种DI框架创建和使用一个.

为什么这首先是一个好主意?使用这种方法有什么好处?在某些情况下这是个好主意吗?在使用DbContext存储库方法调用实例化s 时,您是否可以使用此技术执行某些操作?

c# asp.net entity-framework dependency-injection dbcontext

382
推荐指数
6
解决办法
9万
查看次数

为什么我会使用静态方法进行数据库访问

所以我今天遇到了这个问题,我找不到一些有意义的解释是否有一些非主观的理由在数据库交互时使用静态方法.

现在我正在开发一个项目,通过存储过程完成所有事情,例如我有一些常规方法,如:

public void Delete(int clientID)
    {
      //calling store procedure
    }
Run Code Online (Sandbox Code Playgroud)

要么

public void Save(int clientID)
    {
      //calling store procedure
    }
Run Code Online (Sandbox Code Playgroud)

但我也有:

public static Client GetByID(int id)
    {
        //calling stored procedure
    }
Run Code Online (Sandbox Code Playgroud)

要么

public static int AddNew(string firstName, string lastName...)
    {
      //calling store procedure
    }
Run Code Online (Sandbox Code Playgroud)

因为我已经工作.NET了大约9个月而且我一直在使用Entity Framework,Repository Pattern我无法回忆任何地方或任何使用静态方法的代码.不适用于标准CRUD操作,也不适用于与数据库相关的更具体任务.

这是与访问数据库的特定方式有关的东西,是一些可以提供(甚至是非常小的)性能提升的实践,或者它只是开发人员的方法,我不应该在何时不在我的数据库中使用静态方法相关的方法?

c# database static-methods

7
推荐指数
1
解决办法
5088
查看次数