用习惯了ADO.NET的方式去访问数据库,虽然ADO.NET写的代码没有EF简洁,可是也并不麻烦。而且EF在进行多表查询的那种方式是,EF需要先去数据库里定义外键,再进去一次代码生成,然后才能用INCLUDE方法进行多表关联查询。我不太喜欢那样,还不如老老实实写做SQL语句。
所以ADO.NET 不能完成不用掉。那么怎么将EF和ADO.NET结合。
其实很简单,只要将EF的连接池返回成ADO.NET的SQLCONNECTION。然后就可以用ADO.NET的方式来写了。
protected void Button4_Click(object sender, EventArgs e) { var context = new CcxDemoEntities(); SqlConnection conn = context.Database.Connection as SqlConnection; conn.Open(); var cmd = (conn).CreateCommand(); cmd.CommandText = "select * from gBook_Message"; SqlDataReader dr = cmd.ExecuteReader(); DataTable dt = new DataTable(); dt.Load(dr); } protected void Button5_Click(object sender, EventArgs e) { var context = new CcxDemoEntities(); SqlConnection conn = context.Database.Connection as SqlConnection; conn.Open(); var cmd = (conn).CreateCommand(); cmd.CommandText = "pro_Message"; cmd.CommandType = CommandType.StoredProcedure; DataTable dt = new DataTable(); SqlDataReader dr = cmd.ExecuteReader(); dt.Load(dr); }