当前手头的项目又是LINQ、又是EF、又是MVC的,把我这样的菜鸟搞的晕头转向。前两天终于有了点空闲时间,便花了点解决了一个存在心中许久的疑问:EF到底在什么时候向数据库递交了查询?现在来分享一下我的小收获。
我为什么会产生的这样的疑问:
以SQL自带的数据库NorthWind和简单的ASP.NET网站程序为例,先新建一个默认的ASP.NET网站,然后在项目中添加 ADO.NET Entity Data Model,并且在向导中选择orders和order_details两张表。完成后在默认的页面Default.aspx添加一个gridview并敲入如下代码。
protected void Page_Load(object sender, EventArgs e)
{
NorthwindModel.NorthwindEntities ne = new NorthwindModel.NorthwindEntities();
GridView1.DataSource = ne.Orders;
GridView1.DataBind();
}
运行程序,简单的3句话,完成了数据库的连接、查询、绑定。就这样的3句代码“EF到底在什么时候向数据库递交了查询?”这个问题似乎没有去追寻的必要。然而在具体的系统中,因为在系统架构下代码的层层封装,对我这样的新手