[英]ASP.NET MVC Manage SQLConnection with Dapper
我正在使用Stack Overflow / Sam Saffron发布的新Dapper Micro ORM快速使用MVC。 我想知道在我的控制器中管理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);
}
}
尽管最好避免在控制器中直接访问数据。 将您的数据访问方法隐藏在CommentsService
类或类似内容中,并从控制器中调用它。
我从来没有使用过它,但是var comments
在执行时被推迟了,那么你就会遇到问题,并且必须使用像.ToList这样的东西来在关闭连接之前完全枚举结果。 否则,如果.ExecuteMapperQuery
在返回结果之前完全枚举结果,那么你就可以了
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.