internal void GetSelectQuery <valueType, modelType> (Sql.Table <valueType, modelType> sqlTool, MemberMap <modelType> memberMap, ref CreateSelectQuery <modelType> createQuery, ref SelectQuery <modelType> query) where valueType : class, modelType where modelType : class { query.MemberMap = DataModel.Model <modelType> .CopyMemberMap; if (memberMap != null && !memberMap.IsDefault) { query.MemberMap.And(memberMap); } GetSelectQuery(sqlTool, ref createQuery, ref query); }
/// <summary> /// 获取查询信息 /// </summary> /// <typeparam name="valueType">对象类型</typeparam> /// <typeparam name="modelType">模型类型</typeparam> /// <param name="sqlTool">SQL操作工具</param> /// <param name="createQuery"></param> /// <param name="query">查询信息</param> /// <returns>对象集合</returns> internal virtual void GetSelectQuery <valueType, modelType> (Sql.Table <valueType, modelType> sqlTool, ref CreateSelectQuery <modelType> createQuery, ref SelectQuery <modelType> query) where valueType : class, modelType where modelType : class { throw new InvalidOperationException(); }
/// <summary> /// 委托关联表达式转SQL表达式 /// </summary> /// <param name="expression">委托关联表达式</param> /// <param name="sqlStream">SQL表达式流</param> /// <param name="query">查询信息</param> internal virtual void GetSql <modelType>(LambdaExpression expression, CharStream sqlStream, ref SelectQuery <modelType> query) where modelType : class { AutoCSer.Sql.MsSql.ExpressionConverter expressionConverter = new AutoCSer.Sql.MsSql.ExpressionConverter { SqlStream = sqlStream }; expressionConverter.Convert(expression.Body); if (query.IndexFieldName == null) { query.SetIndex(expressionConverter.FirstMemberName, expressionConverter.FirstMemberSqlName); } }