private void UnmapM2NMappingKey(M2NMapping mapping, int key) { driver.query("DELETE FROM", dbe.Table(mapping.mapTable), "WHERE", dbe.Col(mapping.mapMyColumn), " = ", key); }
/// <summary> /// Fetches the IDs of rows that are associated to the panel`s datarow through a maptable and edited in a M2NMappingField /// </summary> /// <param name="mapping"></param> /// <param name="key"></param> /// <returns></returns> private List<int> FetchMappingValues(M2NMapping mapping, int key) { DataTable tbl = driver.fetchAll("SELECT", dbe.Col(mapping.mapRefColumn), "FROM", dbe.Table(mapping.mapTable), "WHERE", dbe.Col(mapping.mapMyColumn), " = ", dbe.InObj(key)); List<int> res = new List<int>(); foreach (DataRow r in tbl.Rows) res.Add((int)(r[0])); return res; }
/// <summary> /// INSERTs rows neccessary for mapping the inserted / updated datarow to another table via a M2NMappingField. Does not clear the mapping by itself /// => UnmapM2NMappingKey must be called on update /// </summary> /// <param name="mapping"></param> /// <param name="key"></param> /// <param name="vals"></param> private void MapM2NVals(M2NMapping mapping, int key, List<int> vals) { DataTable table = new DataTable(); table.Columns.Add(mapping.mapMyColumn, typeof(int)); table.Columns.Add(mapping.mapRefColumn, typeof(int)); DataRow row = table.NewRow(); foreach (int val in vals) { row[0] = key; row[1] = val; driver.query("INSERT INTO", mapping.mapTable, dbe.InsVals(row)); } }
public M2NMappingField(M2NMapping mapping, string caption) : base(caption) { this.Mapping = mapping; }