Извлечение пар столбцов псевдонимов из nhibernate sql
Я строю комплекс SQL с объединениями. Нет, в конце концов, у меня есть последняя строка slq (или выражение hql), из которой я хотел бы извлечь псевдонимы в виде пары к исходному имени столбца.
С самого начала я работаю с запросом liq, потому что не все возможно с провайдером nhibernate linq (v 3.4.1). Мне приходится работать с чистым sql. С помощью этого метода я извлекаю строку sql:
public String GetGeneratedSql(System.Linq.IQueryable queryable, ISession session)
{
var sessionImp = (ISessionImplementor)session;
var nhLinqExpression = new NhLinqExpression(queryable.Expression, sessionImp.Factory);
var translatorFactory = new ASTQueryTranslatorFactory();
var translators = translatorFactory
.CreateQueryTranslators(nhLinqExpression.Key,
nhLinqExpression, null, false,
sessionImp.EnabledFilters, sessionImp.Factory);
var sql = translators.First().SQLString;
var formamttedSql = FormatStyle.Basic.Formatter.Format(sql);
int i = 0;
var map = ExpressionParameterVisitor.Visit(queryable.Expression, sessionImp.Factory)
.ToArray();
formamttedSql = Regex.Replace(formamttedSql, @"\?", m => map[i++].Key.ToString()
.Replace('"', '\''));
return formamttedSql;
}
Но я не знаю, как извлечь полученные псевдонимы.