Пример #1
0
        public override IObjectModel ToNewObjectModel(DbSqlQueryExpression sqlQuery, DbTable table, DbMainTableExpression dependentTable, bool ignoreFilters)
        {
            DbColumnAccessExpression cae = ObjectModelHelper.ParseColumnAccessExpression(sqlQuery, table, this.Expression);

            PrimitiveObjectModel objectModel = new PrimitiveObjectModel(this.ObjectType, cae);

            objectModel.NullChecking = ObjectModelHelper.TryGetOrAddNullChecking(sqlQuery, table, this.NullChecking);

            return(objectModel);
        }
Пример #2
0
        IObjectModel VisistMapTypeSelector(Expression exp)
        {
            if (!MappingTypeSystem.IsMappingType(exp.Type))
            {
                throw new NotSupportedException(exp.ToString());
            }

            DbExpression         dbExp = this.ResolveExpression(exp);
            PrimitiveObjectModel ret   = new PrimitiveObjectModel(exp.Type, dbExp);

            return(ret);
        }
Пример #3
0
        /// <summary>
        /// a => a.Id   a => a.Name   a => a.User
        /// </summary>
        /// <param name="exp"></param>
        /// <returns></returns>
        protected override IObjectModel VisitMemberAccess(MemberExpression exp)
        {
            //create MappingFieldExpression object if exp is map type
            if (MappingTypeSystem.IsMappingType(exp.Type))
            {
                DbExpression         dbExp = this.ResolveExpression(exp);
                PrimitiveObjectModel ret   = new PrimitiveObjectModel(exp.Type, dbExp);
                return(ret);
            }

            //如 a.Order a.User 等形式
            return(this.ResolveComplexMember(exp));
        }