Service 或是 Repository 使用 DB Connection 方式?

方式2,每个方法增加 Connection 参数,优点是能管控 Transation,在多个业务逻辑能出问题一次rollback。如下订单需要经过 Order 跟 OA 审批的 Service,能共用 connection。

方式1,个人没用,但外层方法function可以不需要管理 Connection

请问哪一种比较符合大业务量的需求

//方法一 : 每个 Service 方法自己建立 Connection
public class OAService
{
    public bool SendApplication()
    {
        using(var cnn = DB.GetConnection())
        {
            //..
        }
    }
}

public class OrderService
{
    public bool CreateNewOrder()
    {
        using(var cnn = DB.GetConnection())
        {
            //..
        }
    }
}

//方法一 : 每个 Service 方法使用外部传进来的Connection
public class OAService
{
    public bool SendApplication(DbConnection cnn)
    {
        //..
    }
}

public class OrderService
{
    public bool CreateNewOrder(DbConnection cnn)
    {
        //..
    }
}
阅读 1.4k
1 个回答

既然选择分层,那就应该遵守分层规则,Service 重点在于组合 Repository 来处理业务,而 ConnectionTransation 本身就是 Repository 层面的事,惯穿到 Service 那分层就没什么意义了;

试想一下,如果你的 Repository 并不是使用 DB,你所困惑的ConnectionTransation 还有意义吗?

所以问题本身应该是,你为什么要选择分层?

推荐问题
logo
Microsoft
子站问答
访问
宣传栏