Exemplo n.º 1
0
 /// <summary>
 /// Not implemented
 /// </summary>
 /// <typeparam name="U">Type parameter not used</typeparam>
 /// <param name="path">Parameter path not used</param>
 /// <param name="joinType">Parameter joinType not used</param>
 /// <returns>Operation not implemented</returns>
 public IQueryOver <T, U> JoinQueryOver <U>(System.Linq.Expressions.Expression <Func <T, U> > path, NHibernate.SqlCommand.JoinType joinType)
 {
     throw new NotImplementedException();
 }
Exemplo n.º 2
0
 /// <summary>
 /// Not implemented
 /// </summary>
 /// <typeparam name="U">Type parameter not used</typeparam>
 /// <param name="path">Parameter path not used</param>
 /// <param name="alias">Parameter alias not used</param>
 /// <param name="joinType">Parameter joinType not used</param>
 /// <param name="withClause">Parameter withClause not used</param>
 /// <returns>Operation not implemented</returns>
 public IQueryOver <T, U> JoinQueryOver <U>(System.Linq.Expressions.Expression <Func <T, U> > path, System.Linq.Expressions.Expression <Func <U> > alias, NHibernate.SqlCommand.JoinType joinType, NHibernate.Criterion.ICriterion withClause)
 {
     throw new NotImplementedException();
 }
Exemplo n.º 3
0
        private static string TryCreateCriteria(string fullPropertyName, ref ICriteria originalCriteria, Dictionary <string, ICriteria> aliasesDict)
        {
            StringBuilder name       = new StringBuilder();
            string        columnName = fullPropertyName;

            if (fullPropertyName.Contains(":"))
            {
                int    idx        = columnName.LastIndexOf(':');
                string prefixName = columnName.Substring(0, idx);
                columnName = columnName.Substring(idx + 1);

                string[] prefixNames = prefixName.Split(new char[] { ':' }, StringSplitOptions.RemoveEmptyEntries);
                for (int j = 0; j < prefixNames.Length; ++j)
                {
                    string prefixAlias = prefixNames[j];

                    NHibernate.SqlCommand.JoinType joinType = NHibernate.SqlCommand.JoinType.InnerJoin;
                    if (j != 0)
                    {
                        if (j == prefixNames.Length - 1)
                        {
                            joinType = GetJoinType(ref columnName);
                        }
                        else
                        {
                            joinType = GetJoinType(ref prefixNames[j]);
                        }
                    }
                    string aliasesKey;
                    if (joinType != NHibernate.SqlCommand.JoinType.InnerJoin)
                    {
                        aliasesKey = prefixAlias + "-" + joinType.ToString();
                    }
                    else
                    {
                        aliasesKey = prefixAlias;
                    }

                    if (!aliasesDict.ContainsKey(aliasesKey))
                    {
                        string    preCriteria;
                        ICriteria criteria;
                        if (j == 0)
                        {
                            preCriteria = "Current";
                        }
                        else
                        {
                            preCriteria = prefixNames[j - 1];
                        }

                        criteria = CreateJoinCriteria(prefixAlias, preCriteria, aliasesDict, joinType);
                        aliasesDict.Add(aliasesKey, criteria);

                        originalCriteria = criteria;
                    }
                    else
                    {
                        originalCriteria = aliasesDict[aliasesKey];
                    }

                    if (j == prefixNames.Length - 1)
                    {
                        name.Append(prefixAlias).Append(".");
                    }
                }
            }
            else
            {
                name.Append("Current").Append(".");
                originalCriteria = aliasesDict["Current"];
            }

            return(name.ToString() + columnName);
        }
Exemplo n.º 4
0
 /// <summary>
 /// Not implemented
 /// </summary>
 /// <param name="path">Parameter path not used</param>
 /// <param name="alias">Parameter alias not used</param>
 /// <param name="joinType">Parameter joinType not used</param>
 /// <returns>Operation not implemented</returns>
 public IQueryOver <T, T> JoinAlias(System.Linq.Expressions.Expression <Func <T, object> > path, System.Linq.Expressions.Expression <Func <object> > alias, NHibernate.SqlCommand.JoinType joinType)
 {
     throw new NotImplementedException();
 }
Exemplo n.º 5
0
        public static ICriteria CreateJoinCriteria(string prefixAlias, string preCriteria, Dictionary <string, ICriteria> aliases, NHibernate.SqlCommand.JoinType joinType)
        {
            // 不太能搞清楚两者区别
            // ICriteria criteria = aliases[preCriteria].CreateCriteria(prefixAlias, prefixAlias) = new Subcriteria;
            // ICriteria criteria = aliases[preCriteria].CreateAlias(prefixAlias, prefixAlias) = this Criteria;

            ICriteria criteria = aliases[preCriteria].CreateCriteria(prefixAlias, prefixAlias, joinType);

            return(criteria);
        }