gpt4 book ai didi

c# - 我应该在我的 Controller 中打开数据库连接吗?

转载 作者:太空宇宙 更新时间:2023-11-03 20:20:53 29 4
gpt4 key购买 nike

我的 Controller 需要获取传递回 View 的数据。我应该在哪里打开连接以传递到存储库?这是一个例子。这是我的一个 Controller 的一部分。

using (var connection = this.GetActiveConnection())
{
var repository = new RefRepository(connection);
var codes = repository.GetPoACodes();
}

在 Controller 中打开连接是不好的做法吗?如果我不通过 Controller 传递它,我应该在哪里传递与存储库的连接?

最佳答案

实际上,存储库必须自己处理连接,这不应该是 Controller 的问题。Controller 类必须保持瘦,如果变胖,就会有代码味道。

如果您可以使用依赖注入(inject)框架(如 Ninject、StructureMap 等)连接这些依赖项,以处理 DbContext 或 Session 和 SessionFactory(EF 或 NHibernate)、事务或即 Unit of工作模式、异常处理和日志记录(如果您想走得更远的话)。

如果您使用的是 Visual Studio,那么在项目模板中还有一个创建存储库的选项,您可以创建示例项目、阅读代码并了解代码的组织方式。

在此article ,在 Web API header 下,您可以了解如何操作。

关于c# - 我应该在我的 Controller 中打开数据库连接吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13688154/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com