/// <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(); }
/// <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(); }
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); }
/// <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(); }
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); }