public List<Node> GetNodes() { var mapper = new OneToManyDapperMapper<Node, Sensor, int>() { AddChildAction = (node, sensor) => { if (node.sensors == null) node.sensors = new List<Sensor>(); node.sensors.Add(sensor); }, ParentKey = (node) => node.db_Id }; List<Node> list; using (var db = new SqlConnection(connectionString)) { db.Open(); string joinQuery = "SELECT * FROM Nodes n JOIN Sensors s ON n.db_Id = s.Node_db_Id ORDER BY n.nodeId"; list = db.Query<Node, Sensor, Node>(joinQuery, mapper.Map, splitOn: "db_Id") .Where(y => y != null).ToList(); } return list; }
public Node GetNodeByNodeId(int nodeId) { var mapper = new OneToManyDapperMapper<Node, Sensor, int>() { AddChildAction = (node, sensor) => { if (node.sensors == null) node.sensors = new List<Sensor>(); node.sensors.Add(sensor); }, ParentKey = (node) => node.db_Id }; Node result; using (var db = new SqlConnection(connectionString)) { db.Open(); string joinQuery = $"SELECT * FROM Nodes n JOIN Sensors s ON n.db_Id = s.Node_db_Id WHERE n.nodeId = {nodeId}"; result = db.Query<Node, Sensor, Node>(joinQuery, mapper.Map, splitOn: "db_Id").FirstOrDefault(); if (result == null) { joinQuery = $"SELECT * FROM Nodes WHERE nodeId = {nodeId}"; result = db.Query<Node>(joinQuery).FirstOrDefault(); } } return result; }