ASP.NET MVC使用Dapper管理SQLConnection

| 我正在使用MVC快速介绍Stack Overflow / Sam Saffron发布的新Dapper Micro ORM。我想知道在控制器内部管理SQLConnection对象的最简单方法是什么?我正在做这样简单的事情,只是旋转一些数据并测试Dapper,但是像这样打开/关闭连接是不是一个主意?
public class HomeController : Controller
{
    SqlConnection conn = new SqlConnection(ConfigurationManager.ConnectionStrings[\"ajh\"].ConnectionString);

    public HomeController()
    {
    }

    public ActionResult Index()
    {
        // get me all comments
        conn.Open();
        var comments = conn.ExecuteMapperQuery<Comment>(\"select * from Comment\");
        conn.Close();

        return View(comments);
    }
}
已邀请:
只需在本地创建,打开和关闭连接即可:
public class HomeController : Controller
{
    public HomeController()
    {
    }

    public ActionResult Index()
    {
        List<Comment> comments;
        using (var conn = new SqlConnection(/* ... */))
        {
            conn.Open();
            comments = conn.ExecuteMapperQuery<Comment>(\"select * from Comment\");
        }
        return View(comments);
    }
}
尽管最好的方法是避免在控制器中直接访问数据。将数据访问方法埋入a2ѭ类或类似的类中,然后从控制器中调用它。
我从未使用过它,但是but3的执行被推迟了,那么您将遇到问题,必须使用.ToList之类的东西来完全枚举结果,然后再关闭连接。否则,如果
.ExecuteMapperQuery
在返回结果之前将其全部枚举,则可以

要回复问题请先登录注册