Ejemplo n.º 1
0
        public ISubInsertable <T> AddSubList(Expression <Func <T, SubInsertTree> > tree)
        {
            Check.Exception(GetPrimaryKeys().Count == 0, typeof(T).Name + " need Primary key");
            Check.Exception(GetPrimaryKeys().Count > 1, typeof(T).Name + "Multiple primary keys are not supported");
            //Check.Exception(this.InsertObjs.Count() > 1, "SubInserable No Support Insertable(List<T>)");
            //Check.Exception(items.ToString().Contains(".First().")==false, items.ToString()+ " not supported ");
            if (this.InsertObjs == null || this.InsertObjs.Count() == 0)
            {
                return(new SubInsertable <T>());
            }
            SubInsertable <T> result = new SubInsertable <T>();

            result.InsertObjects = this.InsertObjs;
            result.Context       = this.Context;
            result.SubList       = new List <SubInsertTreeExpression>();
            result.InsertBuilder = this.InsertBuilder;
            result.Pk            = GetPrimaryKeys().First();
            result.Entity        = this.EntityInfo;
            result.AddSubList(tree);
            return(result);
        }
Ejemplo n.º 2
0
        public ISubInsertable <T> AddSubList(Expression <Func <T, object> > items)
        {
            Check.Exception(GetPrimaryKeys().Count == 0, typeof(T).Name + " need Primary key");
            Check.Exception(GetPrimaryKeys().Count > 1, typeof(T).Name + "Multiple primary keys are not supported");
            //Check.Exception(this.InsertObjs.Count() > 1, "SubInserable No Support Insertable(List<T>)");
            //Check.Exception(items.ToString().Contains(".First().")==false, items.ToString()+ " not supported ");
            if (this.InsertObjs == null || this.InsertObjs.Count() == 0)
            {
                return(new SubInsertable <T>());
            }
            string            subMemberName;
            object            sublist;
            SubInsertable <T> result = new SubInsertable <T>();

            result.GetList(this.InsertObjs, items, out subMemberName, out sublist);
            result.InsertObjects = this.InsertObjs;
            result.Context       = this.Context;
            result.SubList       = new Dictionary <string, object>();
            result.SubList.Add(subMemberName, sublist);
            result.InsertBuilder = this.InsertBuilder;
            result.Pk            = GetPrimaryKeys().First();
            result.Entity        = this.EntityInfo;
            return(result);
        }