EF to sql string sql = "select T_Task.BSID,T_Task.CloseDate,T_Task.CompleteDate,T_Task.CloseUser,T_Task.TaskID,T_BaseStation.Name from T_Task " + "inner join T_BaseStation on T_Task.BSID=T_BaseStation.BSID"+ " where " + sqltaskid; ObjectResult<Sys> q = db.ExecuteStoreQuery<Sys>(sql); List<Sys> qList = q.ToList(); EF中执行sql语句,以及事务 db.Connection.Open(); var trans = db.Connection.BeginTransaction(); JsonResult json = new JsonResult(); json.Data = true; try { t_device.IsAssets = 1; db.T_Device.AddObject(t_device); db.SaveChanges(); var q = db.T_DeviceType.Single(p => p.DeviceTypeID == t_device.DeviceTypeID); if (!string.IsNullOrEmpty(q.InfoTableName)) { //根据不同的类型新建一个设备详细信息 string sql = "Insert into T_" + q.InfoTableName + "(DeviceID,BSID) values(" + t_device.DeviceID + "," + t_device.BSID + ")"; if (db.ExecuteStoreCommand(sql) != 1) { throw new Exception("创建详细信息失败,请检查该设备类型的表名是否正确"); } } trans.Commit(); } catch (Exception ee) { trans.Rollback(); json.Data = ee.Message; } return json; //基站过滤,调用存储过程 public JsonResult AutoSrc(string q) { int userid = Utils.GetCurrentLoginUserID(this.Session); //var code = db.T_DepartmentInfo.Single(t => t.DepartmentID == (db.T_User.FirstOrDefault(p => p.UserID == userid).DepartmentID)).Code; // var r = from e in db.T_BaseStation // join d in db.T_DepartmentInfo on e.DepartmentID equals d.DepartmentID // where d.Code != null && d.Code.Substring(0, code.Length).Contains(code)&&(e.Name.Contains(q)||e.PinYin.Contains(q)) // select new // { // BSID = e.BSID, // Name = e.Name, // PinYin = e.PinYin, // parentBSID = e.parentBSID // }; return proc(userid, q); } public JsonResult proc(int code, string name) { string cmdText = "P_inspectBaseList"; SqlParameter[] paras = new SqlParameter[] { new SqlParameter("@userId",code), new SqlParameter("@searchName",name) }; DataTable dt = new DataTable(); dt = ExecuteQuery(cmdText, paras, CommandType.StoredProcedure); return Json(dt, JsonRequestBehavior.AllowGet); } public DataTable ExecuteQuery(string cmdText, SqlParameter[] paras, CommandType ct) { DataTable dt = new DataTable(); SqlCommand cmd = new SqlCommand(); SqlConnection conn = new SqlConnection(@"Data Source=ip\SQL2008,1848;Initial Catalog=111;Persist Security Info=True;User ID=sa;Password=111"); conn.Open(); cmd = new SqlCommand(cmdText, conn); cmd.CommandType = ct; cmd.Parameters.AddRange(paras); using (SqlDataReader sdr = cmd.ExecuteReader(CommandBehavior.CloseConnection)) { dt.Load(sdr); } return dt; } //接受Json数据 [HttpPost] [OutputCache(Location = OutputCacheLocation.None)] public JsonResult DataContractJsonDeserialize(T_MapOffset[] json) { var sqlparam = ""; int i = 0; if (json != null && json.Length > 0) { foreach (var mapOffset in json) { if (i == 0) sqlparam += "( lat=" + mapOffset.lat + " and lng=" + mapOffset.lng + ") "; else { sqlparam += "or ( lat=" + mapOffset.lat + " and lng=" + mapOffset.lng + ") "; } i++; } JsonResult result = new JsonResult(); try { SqlConnection conn = new SqlConnection(@"Data Source=ip\SQL2008,1848;Initial Catalog=111;Persist Security Info=True;User ID=sa;Password=111"); string strSql = "select * from T_MapOffset where " + sqlparam; List<T_MapOffset> map = new List<T_MapOffset>(); SqlCommand cmd = new SqlCommand(strSql, conn); conn.Open(); SqlDataReader dr = cmd.ExecuteReader(); while (dr.Read()) { T_MapOffset mapOffset = new T_MapOffset(); mapOffset.lat = Convert.ToInt32(dr["lat"]); mapOffset.lng = Convert.ToInt32(dr["lng"]); mapOffset.latoffset = Convert.ToInt32(dr["latoffset"]); mapOffset.lngoffset = Convert.ToInt32(dr["lngoffset"]); map.Add(mapOffset); } conn.Close();//关闭数据库连接 return Json(map); } catch (Exception) { result.Data = null; } return result; } else { return null; } } //接受泛型集合 public JsonResult GetListMapOffset(List<string> lnglat) { JsonResult result = new JsonResult(); result.JsonRequestBehavior = JsonRequestBehavior.AllowGet; List<object> list = new List<object>(); try { foreach (var temp in lnglat) { string[] t = temp.Split(new char[] { ',' }, StringSplitOptions.RemoveEmptyEntries); if (t.Length != 2) continue; int lng = Int32.Parse(t[0]); int lat = Int32.Parse(t[1]); var q = from m in db.T_MapOffset.Where(p => p.lng == lng && p.lat == lat) select new { m.lat, m.lng, m.latoffset, m.lngoffset }; list.AddRange(q); } return Json(list); } catch { result.Data = null; } return result; } //接受string字符串 public JsonResult GetListForPlan(string bsids) { string[] list = bsids.Split(new[] {','}, StringSplitOptions.RemoveEmptyEntries); if(list.Length<=0) { return null; } int[] ids=new int[list.Length]; int i = 0; foreach (string s in list) { ids[i] = int.Parse(s); i++; } var q = from e in db.T_BaseStation join a in ids on e.BSID equals a select new { BSID = e.BSID, Name = e.Name, Code = e.Code, RoomID = e.RoomID, Building = e.Building, Type = e.Type, Address = e.Address, LocationInBuilding = e.LocationInBuilding, Longitude = e.Longitude, Latitude = e.Latitude, LonLatUpdateDate = e.LonLatUpdateDate, VIP = e.VIP, InspectorArrivalTime = e.InspectorArrivalTime, PowerGenerationArrivalTime = e.PowerGenerationArrivalTime, LastInspectTime = e.LastInspectTime, BestInspectCircle = e.BestInspectCircle, AddUser = e.AddUser, AddTime = e.AddTime, MonitoringInstalled = e.MonitoringInstalled, ResponsibleUser = e.ResponsibleUser, DepartmentID = e.DepartmentID, Network = e.Network }; return Json(q, JsonRequestBehavior.AllowGet); } select ManufacturersName,COUNT(*) from T_DeviceType group by ManufacturersName,model,TypeName having COUNT(*) >1 Fiddler4BetaSetup.exe