コード例 #1
0
ファイル: MereRepo.cs プロジェクト: lookwhatisee/Mere
 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);
 }
コード例 #2
0
        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));
        }
コード例 #3
0
ファイル: MereRepo.cs プロジェクト: lookwhatisee/Mere
        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);
                }
            }
        }