/// <summary> /// 初始化 <see cref="ExpressionVisitorBase"/> 类的新实例 /// </summary> /// <param name="provider">查询语义提供者</param> /// <param name="aliases">表别名集合</param> /// <param name="expression">将访问的表达式</param> public ExpressionVisitorBase(IDbQueryProvider provider, TableAlias aliases, Expression expression) { _provider = provider; _aliases = aliases; _expression = expression; _visitedStack = new MemberVisitedStack(); _navMembers = new HashCollection <NavMember>(); }
/// <summary> /// 实例化 <see cref="MappingCommand"/> 类的新实例 /// </summary> /// <param name="provider">数据查询提供者</param> /// <param name="aliases">别名</param> /// <param name="token">解析上下文参数</param> public MappingCommand(IDbQueryProvider provider, TableAlias aliases, ResolveToken token) : base(string.Empty, token != null ? token.Parameters : null, System.Data.CommandType.Text) { _provider = provider; _aliases = aliases; _navMembers = new HashCollection <NavMember>(); _joinFragment = provider.CreateSqlBuilder(token); _whereFragment = provider.CreateSqlBuilder(token); }
/// <summary> /// 合并外键 /// </summary> public void AddNavMembers(HashCollection <NavMember> navMembers) { if (navMembers != null && navMembers.Count > 0) { foreach (var nav in navMembers) { if (!_navMembers.Contains(nav.KeyId)) { _navMembers.Add(nav); } } } }