public ActionResult FindPath(int x1, int y1, int x2, int y2) { using (var db = new GraphContext()) { var start = db.Nodes.FirstOrDefault(p => p.X == x1 && p.Y == y1); var end = db.Nodes.FirstOrDefault(p => p.X == x2 && p.Y == y2); //var r = db.Database.SqlQuery<FindPathResult>("EXEC dbo.FindPath", new { StartNode = end.Id, EndNode = end.Id }).ToList<FindPathResult>(); var r = db.Database.SqlQuery<FindPathResult>("FindPath @StartNode, @EndNode", new SqlParameter("StartNode", start.Id), new SqlParameter("EndNode", end.Id)).ToList(); return Json(r); } }
public ActionResult Index() { using (var db = new GraphContext()) { var jss = new JavaScriptSerializer(); ViewBag.Json1 = jss.Serialize(db.Nodes.Select(p => new { p.Id, N = p.Name, p.X, p.Y })); ViewBag.Json2 = jss.Serialize(db.Edges.Where(p=>p.Dir == "A").Select(p => new { NF = new { p.FromNode.Id, p.FromNode.X, p.FromNode.Y }, NT = new { p.ToNode.Id, p.ToNode.X, p.ToNode.Y } })); } return View(); }