public MereRepo() { _mereTable = MereUtils.CacheCheck <T>(); if (string.IsNullOrEmpty(_mereTable.KeyColumnName)) { throw new Exception("Must have a key column to use mere repo for right now"); } _keyColumn = _mereTable.GetMereColumn(_mereTable.KeyColumnName); }
public int GetOrdinal(string name) { if (_list.Count > 0) { var dic = _list[0] as IDictionary <string, object>; if (dic != null) { return(dic.Keys.ToList().IndexOf(name)); } } var r = _mereTable.GetMereColumn(name); if (r == null) { return(-1); } return(_mereTable.SelectMereColumns.IndexOf(r)); }
public void Save(ExpandoObject updateObj) { T found; var isCreate = false; var d = (IDictionary <string, object>)updateObj; if (d.ContainsKey(_keyColumn.ColumnName)) { found = MereQuery.Create <T>() .AddFilter(_keyColumn.ColumnName, SqlOperator.EqualTo, d[_keyColumn.ColumnName]) .ExecuteFirstOrDefault(); } else { //create isCreate = true; found = new T(); } if (found != null) { foreach (var k in d.Keys) { var col = _mereTable.GetMereColumn(k); if (col != null) { col.SetBase(found, d[k]); } } found.MereSave(); if (isCreate) { PubCreate(found); } else { PubUpdate(found); } } }